ACCESS引用ADO 运用OLE DB技术存取数据
VBA给列表框值:
Option Compare Database
Private Sub Form_Load()
Dim cnnDB As New ADODB.Connection
Dim RSTobJECT As New ADODB.Recordset
Dim lbxEmployee As ListBox
Dim strList As String
Set lbxEmployee = Me![员工清单]
Set cnnDB = CurrentProject.Connection
RSTobJECT.Open "tb员工", cnnDB
strList = "姓名;职称;出生日期;"
With RSTobJECT
Do Until .EOF
strList = strList & !姓名 & ";" & !职称 & ";" _
& !出生日期 & ";"
.MoveNext
Loop
.Close
End With
lbxEmployee.RowSource = strList
Set RSTobJECT = Nothing
cnnDB.Close
Set cnnDB = Nothing
End Sub
ACCESS引用ADOX,可以定义数据库的内部结构,如表,查询等,
VBA动态修改传递查询的SQL语句,
工具-引用,Microsoft ADO Ext. 2.8 for DLL and Security
Public Sub ChangeSQL(strPassThroughQueryName As String, strPassthroughSQL As String)
Dim cat As New ADOX.Catalog
Dim Pro As ADOX.Procedure
Dim Cmm As New ADODB.Command
If strPassthroughSQL = "" or Len(strPassthroughSQL) = 0 Then Exit Sub
Set cat.ActiveConnection = CurrentProject.Connection
Set Pro = cat.Procedures(strPassThroughQueryName)
Set Cmm = Pro.Command
Cmm.CommandText = strPassthroughSQL
Set Pro.Command = Cmm
Set cat = Nothing
Set Pro = Nothing
Set Cmm = Nothing
End Sub