Vb SQL access ajout avec un numéro automatiqu

Résolu
hajarette Messages postés 141 Statut Membre -  
hajarette Messages postés 141 Statut Membre -
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. Krysstof Messages postés 1659 Statut Membre 295
     
    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. hajarette Messages postés 141 Statut Membre 16
       
      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. Krysstof Messages postés 1659 Statut Membre 295
     
    sans les ligne

    dim adapter5 = quelqquechose
    set adapter5 = new qquelquechose

    ca marchera pas, ou tu les a pas copier/coller
    0
    1. hajarette Messages postés 141 Statut Membre 16
       
      si j'ai mi dans Modul : Public adapter5 As OleDbDataAdapter
      0
    2. Krysstof Messages postés 1659 Statut Membre 295
       
      oué ben c'est un object activex, il faut donc l'initialiser avec SET

      set adapter5 = new OleDbDataAdapter
      0
    3. hajarette Messages postés 141 Statut Membre 16
       
      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. Krysstof Messages postés 1659 Statut Membre 295
       
      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. hajarette Messages postés 141 Statut Membre 16
       
      peux tu me faire copier coller du code !
      0