Vb SQL access ajout avec un numéro automatiqu

Résolu/Fermé
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 - 5 août 2010 à 14:09
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 - 5 août 2010 à 16:31
Bonjour,

j'ai un probleme dans l'ajout d'une ligne dans ma bd

voici ma table en format sql :
CREATE TABLE IF NOT EXISTS 'gh_client' (
  'id_client' int(250) NOT NULL AUTO_INCREMENT,
  'id_groupe_client' int(11) NOT NULL,
  'num_identifiant' varchar(250) NOT NULL,
  'nom' varchar(250) NOT NULL,
  'prenom' varchar(250) NOT NULL,
  'email' varchar(250) NOT NULL,
  'tel' varchar(50) NOT NULL,
  'portable' varchar(50) NOT NULL,
  'code_postal' double NOT NULL,
  'ville' varchar(250) NOT NULL,
  'pays' varchar(250) NOT NULL,
  'adresse' varchar(250) NOT NULL,
  'note' text NOT NULL,
  PRIMARY KEY ('id_client')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



et voila le code d'insertion que j'ai fait :

ligne("ID_Groupe_Client") = ID_Groupe_Client.Text
       ligne("Num_Identifiant") = Num_Identifiant.Text
       ligne("Nom") = Nom.Text
       ligne("Prenom") = Prenom.Text
       ligne("Tel") = Tel.Text
       ligne("Portable") = Portable.Text
       ligne("Email") = Email.Text
       ligne("Code_Postal") = Code_Postal.Text
       ligne("Ville") = Ville.Text
       ligne("Pays") = Pays.Text
       ligne("Adresse") = Adresse.Text
       ligne("Notes") = Notes.Text
        
      dec_dataset.Tables("Gh_Client").Rows.Add(ligne)

conComm = New OleDb.OleDbCommand("INSERT INTO Client VALUES(null,'" & ligne("ID_Groupe_Client") & "','" & ligne("Num_Identifiant") & "','" & ligne("Nom") & "','" & ligne("prenom") & "','" & ligne("Email") & "','" & ligne("Tel") & "','" & ligne("Portable") & "','" & ligne("Code_Postal") & "','" & ligne("Ville") & "','" & ligne("Pays") & "','" & ligne("Adresse") & "','" & ligne("Notes") & "')", con)

     adapter5.InsertCommand = conComm
     adapter5.Update(dec_dataset, "Gh_Client")




remarque : j 'ai essayé d'inserer NOTHING,NULL,TRUE dans le champs de la clé autoINcrementée mais ca marche pas

SVP j'ai besoin de votre aide
et merci d'avance







2 réponses

Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
Modifié par Krysstof le 5/08/2010 à 14:13
Bonjour

c'est normal, il faut faire un insert un poil différent :

Insert into Table(champ2, champ3, champ4) Values(val2 va3, val4)

le but étant de ne pas mettre le champ1 qui serait autoincrémenté.

en gros tu donnes la liste des champs dans l'ordre de tes valeur, en sautant le premier.
1
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 16
5 août 2010 à 15:28
merci
je l'ai fait, mais ca me donne le message suivant : La référence d'objet n'est pas définie à une instance d'un objet ( NullReferenceException was Unhandled )

sur la ligne " adapter5.InsertCommand = conComm"
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
5 août 2010 à 15:31
sans les ligne

dim adapter5 = quelqquechose
set adapter5 = new qquelquechose

ca marchera pas, ou tu les a pas copier/coller
0
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 16
5 août 2010 à 15:36
si j'ai mi dans Modul : Public adapter5 As OleDbDataAdapter
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
5 août 2010 à 15:42
oué ben c'est un object activex, il faut donc l'initialiser avec SET

set adapter5 = new OleDbDataAdapter
0
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 16
5 août 2010 à 15:54
ca a declanché le message suivant : OleDbException was unhandled ( Type de données incompatible dans l'expression du critère.)

sur la ligne : adapter5.Update(dec_dataset, "Gh_Client")
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
5 août 2010 à 16:07
hum, je réalise...
pourquoi utilises-tu des dataset pour passer ta commande OLE?

tu as ta OleDbCommand qui est prete, il suffit de faire

conComm.executeNonQuery

et hop, ca lance la commande sql sur la connection.
0
hajarette Messages postés 125 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 8 novembre 2012 16
5 août 2010 à 16:15
peux tu me faire copier coller du code !
0