Vb SQL access ajout avec un numéro automatiqu

Résolu
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

  1. 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
    1. 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
  2. sans les ligne

    dim adapter5 = quelqquechose
    set adapter5 = new qquelquechose

    ca marchera pas, ou tu les a pas copier/coller
    0
    1. si j'ai mi dans Modul : Public adapter5 As OleDbDataAdapter
      0
    2. oué ben c'est un object activex, il faut donc l'initialiser avec SET

      set adapter5 = new OleDbDataAdapter
      0
    3. 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
    4. 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
    5. peux tu me faire copier coller du code !
      0