Requete VB (numero auto)

Requete VB (numero auto) - VB/VBA/VBS - Programmation

Marsh Posté le 06-11-2005 à 16:31:38    

Code :
  1. Private Sub cmd_valid_Click()
  2. Dim requete As String
  3. Dim requete2 As String
  4. Dim maxcarte As Recordset
  5. Dim numcartemax As Integer
  6. requete2 = "SELECT MAX(NumCarte) FROM Carte"
  7. maxcarte.OpenRecordset (requete2.dbOpenSnapshot)
  8. numcartemax = maxcarte(0)
  9. numcartemax = numcartemax + 1
  10. requete = "Insert into Carte VALUES "
  11. requete = requete & "(numcartemax,'" & txt_nomcarte & "', '" & txt_designationcarte & "', " & txt_prixcarte & ", " & txt_qtecarte & " )"
  12. bdd.Execute (requete)
  13. End Sub


Voila donc maintenant je pose le probleme ... erreure a la ligne : maxcarte.OpenRecordset (requete2.dbOpenSnapshot)  
sur requete2
 
Je pense que c'est donc ma requête qui foire ... erreure de syntaxe ?
 
Je fait tout ca pour pouvoir chercher le numcarte max  (donc numéro de la derniere entrée) et entré un nouvel enregistrement

Reply

Marsh Posté le 06-11-2005 à 16:31:38   

Reply

Marsh Posté le 06-11-2005 à 18:33:27    

C'est un peu plus compliqué que cela car les requêtes peuvent retourner plusieurs colonnes et plusieurs lignes. Dans ton cas, voici une solution qui devrait marcher.

Au lieu de :
 
maxcarte.OpenRecordset (requete2.dbOpenSnapshot)  
 
écrire :
 
Dim rst as RecordSet
...
Set rst = CurrentDb.OpenRecordset(requete2)
if (not rst.EOF) then
   maxcarte = rst.NumCarte  
   ' ou bien peut-être maxcarte = rst.Fields(0)
End-If

:)

Reply

Marsh Posté le 06-11-2005 à 18:53:08    

ca marche ! bon par contre ca bloque la
 
requete = requete & "(numcartemax,'" & txt_nomcarte & "', '" & txt_designationcarte & "', " & txt_prixcarte & ", " & txt_qtecarte & " )"
 
je peu pas attribuer une variable ? je suis obliger de passer par un objet ?

Reply

Marsh Posté le 06-11-2005 à 19:49:52    

c bon g trouver g oublier " & numcartemax & "

Reply

Sujets relatifs:

Leave a Replay

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