VBA probléme données d'un select

VBA probléme données d'un select - VB/VBA/VBS - Programmation

Marsh Posté le 12-07-2004 à 11:19:19    

Bonjour,
J'ai un probléme avec ma requéte select, voici mon code

Code :
  1. 'Ouvre la connexion
  2.     Set cnn = New ADODB.Connection
  3.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=O:.\Laboratoire\AccessBDD\.\.\.\.\BonDeCommande.mdb;"
  4.     sSQL1 = "SELECT count (*) FROM TFournisseur where NomFournisseur like '" & nom & "'"
  5.    
  6.     Dim Rs As New ADODB.Recordset
  7.     Dim Cmd As New ADODB.Command
  8.    
  9.     Rs.Open sSQL1, cnn, adOpenStatic, adLockReadOnly, adLockReadOnly
  10.     Rs.MoveLast
  11.     If (Rs.RecordCount=0) Then
  12.      DoCmd.SetWarnings False
  13.      DoCmd.RunSQL "INSERT INTO TFournisseur(NomFournisseur) values ('" & nom & "');"
  14.      DoCmd.SetWarnings True
  15.       Else
  16.         NumF = Rs.Fields(0).Value
  17.     End If
  18.     Rs.Close


Je fais un select puis si le select est nul je veux inserer. Ici avec mon code je ne passe jamais dans la boucle je n'insere jamais, le RecordCount ne me renvoie jamais zéro. Je ne comprend pas où est mon erreur peut être que ce n'est pas recordcount que je dois utiliser. Pouvez vous m'aider?
 

Reply

Marsh Posté le 12-07-2004 à 11:19:19   

Reply

Marsh Posté le 12-07-2004 à 13:41:03    

1-Lorsqu'un recordset est vide, recordcount = -1
2-Si ton recordset est vide, rs.movelast plante l'appli.
Utilise plutôt:
'If rs.BOF And rs.EOF then' pour dire que le recordset est vide
3-Si tu ouvres ton recordset en adLockReadOnly, tu auras du mal à ajouter un enregistrement.

Reply

Sujets relatifs:

Leave a Replay

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