VB中调用多个变量的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:19:56
Private Sub Command21_Click()
Dim a As Long
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String

Dim array1(0 To 5) As String
array1(0) = "a1"
array1(1) = "a2"
array1(2) = "a3"
array1(3) = "a4"
array1(4) = "a5"
a1 = hbposv6
a2 = isszmv6
a3 = hbposv5
a4 = hbfsv8
Dim str As String

For a = 0 To 5 '循环开始
DoEvents
En_txt.Text = Format(Date, "yyyy-mm-dd")
Cmd_en_Click

Dsn_Db = "driver={sql server};server=127.0.0.1;uid=sa;database=array1(0);addrees=127.0.0.1;" ‘我想在这里的database循环调用多个数据库
DoEvents
Set Db = New ADODB.Connection
Db.CursorLocation = adUseClient
Db.CommandTimeout = 0
If Db.State = adStateOpen And Not IsEmpty(adStateOpen) Then Db.Close

Db.Open Dsn_Db
DoEvents
Sql_str = "update t_sys_sy

你的代码其实已经实现了,但是还有些问题
因为我没看明白那部分是什么意思

1. 你进行了6次循环(For a = 0 To 5 '),不过你的代码好像只需要5次
因为你的String只定义了a1 - a5(5个),但是你的array却定义了array(0)-array(5)(6个)

2. 如果你贴的代码没错的话,你的array存储的是5个不同的数据库名(可能同时含路径),但是你的这里存储的确实5个没有实际意义的字符串"a1" - "a5", 第6个(array(5))被放空了,同时你给a1 - a4四个String赋值,但是好像除了初始赋值之后就没有在使用过了

不知道你是不是想说
a1 到 a4 四个String所含的值是数据库名,如果是这样的话,你的代码赋值部分应该是

a1 = "hbposv6"
a2 = "isszmv6"
a3 = "hbposv5"
a4 = "hbfsv8"

array1(0) = a1
array1(1) = a2
array1(2) = a3
array1(3) = a4

如果是这样,你要个这4个数据库进行同样的数据更新,
那么你的For循环(For a = 0 To 5)中的a值就可以被用上
你只需要将下面这部分语句做修改(就像Null_bd的回答,不过还没有多数据库访问)
Dsn_Db = "driver={sql server};server=127.0.0.1;uid=sa;database=array1(0);addrees=127.0.0.1;"
应改为:
Dsn_Db = "driver={sql server};server=127.0.0.1;uid=sa;database=" & array1(0) & ";addrees=127.0.0.1;"