Vba 嵌入了那些关于DAO/ADO未来的错误假设。MS一开始就应该知道得更清楚。顺便说一句,对于Access的当前版本(2003和2007),您可能不需要添加DAO引用,因为默认情况下,这些引用存在于使用这些版本创建的数据库中。在早期版本中创建的数据库可能有引用
Vba 嵌入了那些关于DAO/ADO未来的错误假设。MS一开始就应该知道得更清楚。顺便说一句,对于Access的当前版本(2003和2007),您可能不需要添加DAO引用,因为默认情况下,这些引用存在于使用这些版本创建的数据库中。在早期版本中创建的数据库可能有引用,vba,ms-access,Vba,Ms Access,嵌入了那些关于DAO/ADO未来的错误假设。MS一开始就应该知道得更清楚。顺便说一句,对于Access的当前版本(2003和2007),您可能不需要添加DAO引用,因为默认情况下,这些引用存在于使用这些版本创建的数据库中。在早期版本中创建的数据库可能有引用,也可能没有引用。我认为DAO是任何Access应用程序中三个需要的引用之一(其他两个是VBA和Access)。事实上,我不添加任何其他引用,也不与任何其他外部库使用后期绑定,除非在最不寻常的情况下。 Dim catDB As ADOX.Cat
嵌入了那些关于DAO/ADO未来的错误假设。MS一开始就应该知道得更清楚。顺便说一句,对于Access的当前版本(2003和2007),您可能不需要添加DAO引用,因为默认情况下,这些引用存在于使用这些版本创建的数据库中。在早期版本中创建的数据库可能有引用,也可能没有引用。我认为DAO是任何Access应用程序中三个需要的引用之一(其他两个是VBA和Access)。事实上,我不添加任何其他引用,也不与任何其他外部库使用后期绑定,除非在最不寻常的情况下。
Dim catDB As ADOX.Catalog
Dim cmd As ADODB.Command
Dim sQueryName As String
Dim sSQL As String
Set cn = CurrentProject.Connection
Set catDB = New ADOX.Catalog
catDB.ActiveConnection = cn
DoCmd.CopyObject , "Query1_c", acQuery, "Query1"
sQueryName = "Query1_c"
sSQL = "SELECT a,b,c FROM Table1"
Set cmd = New ADODB.Command
Set cmd = catDB.Views(sQueryName).Command
cmd.CommandText = sSQL
Set catDB.Views(sQueryName).Command = cmd
Set catDB = Nothing
cn.Close
Sub RewriteQuerySQL(strQueryName As String, strParameter As String)
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb()
Set qdf = db.QueryDefs(strQueryName)
qdf.SQL = "SELECT [Table].Field1, [Table].Field2 " & vbCrLf & _
"FROM [Table] " & vbCrLf & _
"WHERE ([Table].Field1 = " & chr(34) & strParameter & chr(34) & ");"
End Sub
Sub rewriteAccountsBySalesRepSortSQL(lngSalesRep As Long)
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim strOriginal As String
Dim strReplacePart As String
Dim strSQLReplace As String
Dim lngLocSalesperson As Long
Dim lngLocMyRoundUp As Long
Dim lngLocParen As Long
Dim lngLocEndParen As Long
Set db = CurrentDb()
Set qdf = db.QueryDefs("qryS Accounts by Sales Rep Sorted by Diff DESC")
strSQL = qdf.SQL
lngLocSalesperson = InStr(strSQL, "Salesperson1)=")
lngLocEndParen = InStr(lngLocSalesperson + 14, strSQL, ")")
strOriginal = Mid(strSQL, lngLocSalesperson, lngLocEndParen - lngLocSalesperson)
'lngLocParen = InStrRev(strSQL, "(", lngLocSalesperson)
strReplacePart = "Salesperson1)=" & lngSalesRep
strSQLReplace = Replace(strSQL, strOriginal, strReplacePart)
qdf.SQL = strSQLReplace
End Sub