salut :) comment faire pour insérer un champ auto incrément dans une base de donnée access en vb.net ?? au fait, il s'agit de créer un compte. La table contient les champs suivants (num_compte,cin_titulaire_compte,nom,prenom ..)
Ma clé primaire est le numero de compte et non pas le cin, je veux que le numero de compte s'incrémente dans la table à chaque création d'un nouveau compte. merci d'avance :)
merci :) j'ai enlevé le champ num_compte de ma requête d'insertion et j'ai modifier le type en numéroAuto en access. ça a marché
j'ai encore une petite question, il s'agit de la même requête je cherche à insérer la date actuelle dans le champ date de ma table mais ça n'a pas marché
voici le code
Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:\Users\dell\Desktop\MaBase.accdb")
MyConnexion.Open()
Dim MyCommand As OleDbCommand = MyConnexion.CreateCommand()
MyCommand.CommandText = "insert into Compte (CIN, NOM, PRENOM,SOLDE,DECOUVERT,DATE) values ('" & Form3.TextBox1.Text & "' , '" & Form3.TextBox2.Text & "', '" & Form3.TextBox3.Text & "'," & 0.0 & "," & 0.0 &, "," & DateTime.Now & ")"
MyCommand.ExecuteNonQuery()
Bonjour,
Montre-nous ce que tu as réellement écrit (par copier/coller) à cette ligne :
Form3.TextBox1.Text & "' , '" & Form3.TextBox2.Text & "', '" & Form3.TextBox3.Text & "'," & 0.0 & "," & 0.0 &,
"," & DateTime.Now & ")"
Car elle ne peut que provoquer une erreur dénoncée dès depuis l'éditeur de VB6, du seul fait de ce que j'ai mis en rouge (incohérence dans la construction d'une chaîne de caractères par concaténation, que cette chaîne soit celle d'une requête ou autre, d'ailleurs !).
Or, tu ne nous parles pas de message d'erreur , mais te contentes de dire ;
mais ça n'a pas marché
qui ne signifie en général rien de précis ni d'utile !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
"mais ça n'a pas marché"
Pas très précis comme indice.
Erreur ? Laquelle ?
Qu'a t-il inséré, pour dire que ça n'a pas marché ?
Le nom de ton champ, DATE, est mal choisi et ressemble trop à un mot du langage.
Soit tu le changes (en ajoutant une lettre) ou tu le laisses comme ça, mais alors il faudra toujours l'encadrer de crochets [ et ] :
insert into Compte (CIN, NOM, PRENOM,SOLDE,DECOUVERT,[DATE]) values ...
De quel type, comment est déclaré ton champ DATE dans ta table ?
Si c'est bien une date, il faudra utiliser les # pour encadrer la date que tu insères :
",#" & DateTime.Now & "#)"
Attention toutefois : il est possible qu'il te faille convertir ta date française en date US où le mois est en premier (voir format et localisation).
A voir.
Dans ta syntaxe, des choses bizarres :
Pourquoi les 0.0 sont-ils sortis de la chaine ?
Après le second 0.0, il y a une virgule qui se balade ( ... &, ...)
Je t'engage à mettre les options Strict en service pour t'obliger à réfléchir aux conversions des types de variables. Je ne pense pas que
..." & 0.0 & "...
puisse être interprété correctement par le compilo.
Affiche le contenu de ton MyCommand.CommandText pour voir à quoi ressemble ta chaine de commande.
merci beaucoup à vous deux :) la virgule qui se balade c'était juste une faute de frappe lors de copier/coller !! je m'excuse si mon message manquait d'explication précise, je suis encore débutante et je vous remercie de m'avoir accorder de votre temps :)
L'erreur c'était "erreur de syntaxe dans l'instruction insert into"
j'ai remplacé le champ date dans ma table par date_creation et j'ai utilisé les # pour encadrer la date que j'insère comme me le conseillait jack :) et voilà insertion effectuée avec succès avec la date française aussi ;)
la virgule qui se balade c'était juste une faute de frappe lors de copier/coller
Je me demande à quel moment, lors d'un copier/coller, on pourrait faire une "faute de frappe"..... Hein ? Qui a dit quoi ? ===>> Allez ===>>> ma sieste, au moins, est plus hygiénique !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Tu es donc un "champion" parmi tous les champions !
Ou tu as une machine très "spéciale" en matière de copiers/collers
Allons allons ....
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
comment créer un matricule du format 2018ABC001 en VB.NET jai le code en VBA mais comment traduire en VB.NET.
voici le code en VBA:
Dim varMat As Integer
Me.MatEtud = LTrim(RTrim(Str(Year(Annee)))) + LTrim(RTrim(Mid(ClasseCode, 1, 3)))
Set RS = CurrentDb.OpenRecordset("NumeroEtudiant", dbOpenDynaset)
If RS.EOF Then
Me.MatEtud = Me.MatEtud + LTrim(RTrim(Str(0))) + LTrim(RTrim(Str(0))) + LTrim(RTrim(Str(1)))
Else
Set RS = CurrentDb.OpenRecordset("NumeroEtudiant", dbOpenDynaset)
RS.MoveLast 'prend le dernier element
varMat = RS!EtuNum + 1
Select Case Len(LTrim(RTrim(varMat)))
Case 1 'si la valeur vaut 1
Me.MatEtud = Me.MatEtud + LTrim(RTrim(Str(0))) + LTrim(RTrim(Str(0))) + LTrim(RTrim(Str(varMat)))
Case 2 'si la valeur vaut 2
Me.MatEtud = Me.MatEtud + LTrim(RTrim(Str(0))) + LTrim(RTrim(Str(varMat)))
Case 3 'si la valeur vaut 3
Me.MatEtud = Me.MatEtud + LTrim(RTrim(Str(varMat)))
End Select
End If
End Sub
Repose ta question dans un nouveau message et non par un post existant