2012-04-04 187 views
1

我想将当前数据库中的TBLCommissionTransactions中的所有字段,并在T:\ folder \ TblBackups.mdb中创建一个新表,并将今天的日期和时间附加到新的表名。这纯粹是为了档案目的。VBA代码“查询输入必须至少包含一个表或查询”

对不起,VBA并不是很精通。我有我从网上搜索修改的以下代码。当我运行它时,我收到消息“查询输入必须包含至少一个表或查询”,我怀疑它在strTableName上失败,但并不确定。我玩过它并无法使其工作。我究竟做错了什么?

Private Sub BackupTblCommissions_Click() 
Dim strTableName As String 
Dim strFilename As String 
Dim strSQL As String 
strFilename = "T:\folder\TblBackups.mdb" 
strTableName = "TBLCommissionTransactions" & Format(Now(), "yyyymmdd-hhmm") 
strSQL = "SELECT TBLCommissionTransactions.* INTO " & strTableName & " IN " & _ 
strFilename & " FROM TBLCommissionTransactions;" 

CurrentDb.Execute strSQL 
End Sub 
+0

你有没有通过代码,以确保 “STRSQL” 是串联整个脚本台阶?不确定符号(&)是否会在换行符之前生效。也许在“strFilename”之前将其移下。 – fenone 2012-04-04 15:48:28

+0

&_在VBA中很好。 – Fionnuala 2012-04-04 23:59:17

回答

3

你缺少一些括号和引号:

SELECT TBLCommissionTransactions.* 
INTO [TBLCommissionTransactions20120405-0054] IN 'T:\folder\TblBackups.mdb' 
FROM TBLCommissionTransactions; 

所以

strFilename = "'T:\folder\TblBackups.mdb'" 
strTableName = "[TBLCommissionTransactions" & Format(Now(), "yyyymmdd-hhmm" & "]") 
strSQL = "SELECT TBLCommissionTransactions.* INTO " & strTableName & " IN " & _ 
strFilename & " FROM TBLCommissionTransactions;" 
+0

是的,这工作,真棒,谢谢 – mleezon 2012-04-06 14:55:07

相关问题