Comment insérer des valeurs dans la table de base de données à l'aide de VBA dans MS access
J'ai commencé à utiliser l'accès à tout récemment. Je suis en train d'insérer quelques lignes dans la base de données; cependant, je suis coincé comme il est en train de jeter une erreur:
Trop peu de paramètres.
J'ai une table de test avec une seule colonne, il a nommé date_debut je veux insérer toutes les dates entre deux dates, par exemple si je considère 1/7/2014 à 3/7/2014 j'ai besoin de dates 1/7/2014,2/7/2014,3/7/2014 dans ma table, mais j'ai un problème en insérant le code que j'ai utilisé est le suivant
Private Sub createRec_Click()
Dim StrSQL As String
Dim InDate As Date
Dim DatDiff As Integer
Dim db As database
InDate=Me.FromDateTxt
'here I have used a code to find out the difference between two dates that i've not written
For i = 1 To DatDiff
StrSQL = "INSERT INTO Test (Start_Date) VALUES ('" & InDate & "' );"
StrSQL = StrSQL & "SELECT 'Test'"
db.Execute StrSQL
db.close
i=i+1
next i
End Sub
Mon code génère une erreur dans la ligne Db.Execuite StrSQL
comme trop peu de paramètres.
Espérons que quelqu'un pourrait m'aider avec ce problème.
Merci d'avance
Veuillez envoyer la valeur de StrSql droit avant de l'exécuter.
OriginalL'auteur shravya | 2014-07-30
Vous devez vous connecter pour publier un commentaire.
puisque vous avez mentionné que vous êtes tout à fait nouveau pour l'accès, j'ai dû vous invitons d'abord à supprimer les erreurs dans le code (le incomplète pour la boucle et l'instruction SQL). Sinon, vous avez sûrement besoin de la boucle for pour insérer des dates dans une certaine plage.
Maintenant, veuillez utiliser le code ci-dessous pour insérer les valeurs de date dans votre table. J'ai testé le code et il fonctionne. Vous pouvez l'essayer aussi. Après cela, ajoutez le votre de boucle en fonction de votre scénario
OriginalL'auteur user3267567
Vous ne pouvez pas exécuter deux instructions SQL dans l'un comme vous êtes en train de faire.
Vous ne pouvez pas exécuter une requête de sélection.
db est un objet et que vous n'avez pas à quoi que ce soit: (par exemple set db = currentdb)
En VBA types d'entiers peuvent contenir jusqu'à un max de 32767 - je serais tenté d'utiliser de Longs.
Vous voudrez peut-être un peu plus précis sur la date à insérer:
OriginalL'auteur Lord Peter
Avis le point-virgule dans le milieu de l'instruction SQL (il devrait toujours être à la fin. ses par le moyen de ne pas requise. vous pouvez également omettre). aussi, il n'y a pas d'espace entre le point-virgule et le mot-clé SELECT
en résumé:
supprimer ces deux lignes de code ci-dessus et votre instruction insert ne fonctionne correctement. Vous pouvez le modifier le code plus tard pour répondre à vos besoins spécifiques. Et par ailleurs, certaines fois, vous avoir à enfermer les dates dans les livres des signes comme #
SI je supprime pour la boucle comment puis-je entrer un nombre n de lignes où n est le nombre de jours de diff entre les dates.
OriginalL'auteur user3267567