注册 登录
编程论坛 VB6论坛

VB操作access数据库,如何实现将表名用一个变量代替

shinesun 发布于 2016-05-09 16:08, 3606 次点击
新建access数据库,有多个表格,现要对每个表格实现查询功能,如何实现将表名用一个变量代替,这样就不用对每个表格用写"select * from 年龄 where 班级='20'",想该查询功能写成一个函数,sql语句加了双引号好像就不能将from后面的写成变量了
5 回复
#2
hjxlj2016-05-09 18:18
一样可以,如下:
程序代码:

Dim strTableName As String      '这个变量就可以用来保存表名
……
strTableName = "你的表名"         '给保存表名的变量赋值
……
"SELECT * FROM " & strTableName & " WHERE 班级='20'"
……


[此贴子已经被作者于2016-5-10 09:34编辑过]

#3
ZHRXJR2016-05-10 09:46
一般比较常用的做法是:
程序代码:
Dim strSQL As String
Dim RS As ADODB.Recordset
Dim cn As New ADODB.Connection

Private Sub Combo1_Click()
'在 Combo1 的单击事件中就可以设置数据表连接语句
Dim SJK As String
SJK = Combo1.Text
strSQL = "Select * From " & SJK & ""
strSQL = strSQL & " Where ............"  '这里需要你自己添加查询条件,数据表不同,结构不同,语句也不同
'
一般的做法是与 Combo1 同步,检测数据表的字段,根据字段的数据类型,设置查询条件。
End Sub

Private Sub Form_Load()
  cn.Open "driver={SQL Server};server=计算机名称;uid=sa;pwd=;database=数据库名称"
  '这是SQL数据库连接语句,你可以修改为你的数据库连接语句
  Combo1.Clear
  Set RS = cn.OpenSchema(adSchemaTables)
  Do Until RS.EOF
     If Left(RS!TABLE_NAME, 3) <> "sys" And Left(RS!TABLE_NAME, 3) <> "dtp" Then
        Combo1.AddItem RS!TABLE_NAME    '将你连接的这个数据库中的所有数据表读入 Combo1 控件中了
     End If
     RS.MoveNext
  Loop
  RS.Close
End Sub

如果你还想进一步了解,联系我:qq 2653043392
#4
shinesun2016-05-10 14:34
谢谢两位,我先试试看看能不能解决!
#5
hjxlj2016-05-10 16:12
回复 4楼 shinesun
如果解决,请及时结帖。
#6
shinesun2016-05-11 14:58
问题解决啦!谢谢各位
1