insert ne fonctionne pas

insert ne fonctionne pas - VB/VBA/VBS - Programmation

Marsh Posté le 14-11-2007 à 11:07:19    

bonjour à tous,  
voila j'ai un petit problème,  
j'arrive à me connecter à ma base access et à selectionner des enregistrements.  
Lorsque je fais un ajout, cela m'ajoute dans mon application (lorsque je fais un refresh) l'enregistrement que je souhaite mais pas dans la base de données... du coup à chaque fois que je relance mon programme, tout disparait.  
 
voici mon code :  

Code :
  1. 'requête SQL insert_prof = "INSERT INTO professeur (nom, prenom) VALUES ('toto','titi')"
  2. 'Parametrage de la chaine de connection
  3. Connection.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source= " & Application.StartupPath & "\" & "base.mdb;"
  4. 'Création d'un objet commande
  5. Dim cmd As New OleDb.OleDbCommand
  6. MsgBox(insert_prof)
  7. cmd = New OleDbCommand(insert_prof)
  8. 'on récupère la connexion dans l'objet
  9. cmd.Connection() = Connection
  10. 'ouverture de la connection
  11. Connection.Open()
  12. Try
  13. 'je lance la requête
  14. cmd.ExecuteNonQuery()
  15. Catch ex As Exception
  16. MessageBox.Show(ex.ToString())
  17. End Try
  18. 'Fermeture de la connection
  19. Connection.Close()
  20. Me.Close()


 
 merci d'avance pour votre aide..


Message édité par billut le 14-11-2007 à 11:20:35
Reply

Marsh Posté le 14-11-2007 à 11:07:19   

Reply

Marsh Posté le 15-11-2007 à 03:44:49    

Rien à voir avec ton souci, hein mais... On peut faire des try/catch en VBA ? ô_O
C'est récent comme fonctionnalité ?
 
Sinon, je trouve redondant l'utilisation du new pour ton cmd (lors de la déclaration et de l'affectation) mais ça devrait pas faire avancer ton problème...
 
ptet qu'à la ligne 12 il prendrait un Connection.ConnectionString plutôt ?
 
Enfin la seule appli du genre que j'ai faite, c'était en Java avec une base MySql, du coup je peux moyennement t'aider vu que je connais pas les objets :s

Reply

Marsh Posté le 15-11-2007 à 09:09:12    

Bonjour,
tout d'abord, merci pour ta réponse.
 
Je ne pense pas que mon problème vienne de la connection étant donné que lorsque je fais un "select", je vois le bon résultat dans mon application :
 

Code :
  1. 'Parametrage de la chaine de connection
  2.         Connection.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source= " &   
  3.         Application.StartupPath & "\" & "base.mdb;"
  4.        
  5.         'ouverture de la connection
  6.         Connection.Open()
  7.         Dim command As New OleDbCommand("SELECT * FROM professeur", Connection)
  8.         Dim MaLecture As OleDbDataReader
  9.         MaLecture = command.ExecuteReader
  10.         While MaLecture.Read()
  11.             'Création d'un objet commande
  12.             Dim cmd As New OleDb.OleDbCommand
  13.             'on récupère la connexion dans l'objet
  14.             cmd.Connection() = Connection
  15.             'nouvelle requête
  16.             select_prof = "select * from professeur"
  17.             cmd = New OleDbCommand(select_prof, Connection)
  18.            
  19.             'on lance la requête
  20.             cmd.ExecuteNonQuery()
  21.             ListBox1.Items.Add(MaLecture.Item(1))
  22.             ListBox2.Items.Add(MaLecture.Item(2))
  23.             ListBox1.Refresh()
  24.             ListBox2.Refresh()
  25.          
  26.         End While
  27.         'Fermeture de la connection
  28.         Connection.Close()


 
je pense plutot que mon application "garde en mémoire" l'action de mon insert mais ne lexécute pas correctement dans la bdd.
 
 
sinon c'est du vb 2005.
 
si vous avez d'autres suggestions je suis preneur.
 
merci d'avance

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed