问题描述
我需要一些将参数传递给MySQL数据库表查询的帮助。我有多个唯一表,我需要根据“ 客户端 *”参数进行查询。
为了避免编写无尽的if语句,我需要一种方法来将每个唯一的客户端参数。即“ client1 _” 传递给下面的数据库查询。因此,我不需要每次都在下面的查询中对“ client1_accounts” 等进行硬编码,而是需要一种方法,能够仅在需要时将“ client *”参数附加到查询的各个部分,并避免编写将声明一个if语句作为每个实例的参数。
If tablePrefix = "client1_" Then
Set myconn = New ADODB.Connection
Set rs_client1_accounts = New ADODB.Recordset
myconn.Open "Driver={MySQL ODBC 3.51 Driver};server=" & frmSettings.Text1(0).Text & ";uid=" & frmSettings.Text1(2).Text & ";pwd=" & frmSettings.Text1(3).Text & ";database=" & frmSettings.Text1(1).Text & ""
mysql = "SELECT * FROM client1_accounts"
rs_client1_accounts.Open mysql,myconn,adOpenKeyset,adLockPessimistic
Do Until rs_client1_accounts.EOF = True
List1.AddItem rs_client1_accounts!account
rs_client1_accounts.MoveNext
Loop
ElseIf tablePrefix = "client2_ Then
.... etc ... etc
End if
我希望我已经正确解释了我想做什么,但如果我不提出任何问题,我会尽力澄清。
感谢您的帮助!
解决方法
代替
mysql = "SELECT * FROM client1_accounts"
使用
mysql = "SELECT * FROM " & tablePrefix & "accounts"
第二个示例的结果是与第一个示例中的字符串相同的字符串连接。