excel - 如何在 Excel VBA 中考虑不同的案例选择?
问题描述
我想做的很简单。我希望用户提供一个有效的输入(“IR1”或“IR2”或“IR3”),弹出一条消息说“IR1 Selected”或“IR2 Selected”或“IR3 Selected”,然后让用户点击提交按钮和报告应该填充来自 MySQL 数据库的表和相关数据。
这是我现在拥有的 VBA 代码
Sub querydatafromMySQL_Report_2()
Dim cntMyConnection As ADODB.Connection
Set cntMyConnection = New ADODB.Connection
cntMyConnection.ConnectionString = "DRIVER={MySQL ODBC 8.0 ANSI
Driver};Server=localhost;Database=ie465hw3;Uid=root; pwd=12345678; OPTION=3;"
cntMyConnection.Open
Dim rstFirstRecordset As ADODB.Recordset
Set rstFirstRecordset = New ADODB.Recordset
Dim src As String
src = InputBox("Please Enter RoomID", "Room ID")
If src = Empty Then Exit Sub
Select Case src
Case "IR1"
src = "SELECT * FROM exam WHERE StartTime>'17:00:00' AND RoomID = 'IR1'"
MsgBox "Room IR1 Selected "
Case "IR2"
src = "SELECT * FROM exam WHERE StartTime>'17:00:00' AND RoomID = 'IR2'"
MsgBox "Room IR2 Selected "
Case "IR3"
RoomID = "SELECT * FROM exam WHERE StartTime>'17:00:00' AND RoomID = 'IR3'"
MsgBox "Room IR3 Selected "
Case Else
MsgBox "Invalid RoomID, choose either RoomID: IR1, IR2, or IR3"
End Select
rstFirstRecordset.Open Source:=src, ActiveConnection:=cntMyConnection
Worksheets("Report_2").Activate
Dim column As Integer, row As Integer
With ActiveSheet
row = 11
While Not rstFirstRecordset.EOF
For column = 1 To rstFirstRecordset.Fields.Count
.Cells(row, column) = rstFirstRecordset(column - 1).Value
Next column
rstFirstRecordset.MoveNext
row = row + 1
Wend
End With
Set rstFirstRecordset = Nothing
cntMyConnection.Close
Set cntMyConnection = Nothing
MsgBox "MySQL DB Connected & Data Report Printed"
End Sub
IR1 和 IR2 工作正常,但是当我提供“IR3”时出现此错误
然后当我尝试调试这是它的第一行代码时,有什么问题?
rstFirstRecordset.Open Source:=src, ActiveConnection:=cntMyConnection
解决方案
正确的语法是
Select Case src
Case "IR1"
' Code here
Case "IR1"
' Code here
Case "IR1"
' Code here
Case Else
' Code here
End Select
推荐阅读
- visual-foxpro - 在visual foxpro中将日期字段转换为mm/dd/yy格式
- cmake - 使用 cygwin 为 clion 安装最新的 cmake 版本
- spring - 如何基于属性文件布尔键值对初始化 bean
- unit-testing - 如何对我的 OpenID Connect 回调进行单元测试?
- xcode - 要启用应用切片的最小部署目标?
- python - 为什么存储多个变量正在创建一个元组
- android - glide v4 中的 FifoPriorityThreadPoolExecutor
- ios - 当应用程序在 ios 上关闭时,离子 3 本机存储清除
- kubernetes - 我可以为 Helm 提供多个 values.yaml 文件吗
- xamarin.forms - Xamarin Forms Deploy 错误无法加载程序集“System.Memory”