2012-04-04 6 views
1

Je veux prendre tous les champs dans TBLCommissionTransactions dans la base de données courante et créer une nouvelle table dans T: \ dossier \ TblBackups.mdb et ajouter la date et l'heure d'aujourd'hui le nouveau nom de la table. Ceci est purement à des fins d'archivage.Code VBA "L'entrée de requête doit contenir au moins une table ou requête"

Désolé, pas très bien versé dans VBA. J'ai le code suivant que j'ai modifié de la recherche en ligne. Quand je l'exécute, je reçois le message "L'entrée de la requête doit contenir au moins une table ou une requête", ce que je soupçonne d'échouer sur strTableName mais je ne sais pas vraiment avec certitude. J'ai joué avec et je ne peux pas le faire fonctionner. Qu'est-ce que je fais mal?

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

Avez-vous dans le code étagés pour se assurer "strSQL" est concaténer le script entier? Je ne suis pas sûr que l'esperluette (&) fonctionnera avant le caractère de continuation de ligne. Peut-être le déplacer vers le bas avant le "strFilename". – fenone

+0

& _ va bien dans VBA. – Fionnuala

Répondre

3

Il vous manque des accolades et des citations:

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

Alors

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

Oui cela a fonctionné, génial, merci – mleezon

Questions connexes