vanyou
Messages postés17Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention28 décembre 2004
-
28 déc. 2004 à 09:48
vanyou
Messages postés17Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention28 décembre 2004
-
28 déc. 2004 à 10:38
Bonjour, j'ai un problème d'"incompatibilité de type" à mon recordset
Private Sub Commande46_Click()
Dim num_clt As Integer
num_clt = CInt(Me.num_client)
Dim db As Database
Set db = DBEngine(0)(0)
Dim rs As Recordset
Dim sel As String
sel = "SELECT CodeCSP, cheque FROM Officines ORDER BY CodeCSP ASC"
Set rs = db.OpenRecordset(sel)
Dim i As Integer
Dim j As Boolean
Dim p As Integer
Dim d As Integer
Dim nb As Integer
p = CInt(Me.premier) ' premier n° de chèque
d = CInt(Me.dernier) ' dernier n° de chèque
nb = d - p + 1 ' nombre de clients à affecter
i = 1
j = False
While Not rs.EOF
If j = False Then
If rs("CodeCSP") = num_clt Then DoCmd.RunSQL ("update Officines set cheque p where CodeCSP " & rs("CodeCSP") & "")
i = i + 1
p = p + 1
j = True
End If
Else
If i <= nb Then DoCmd.RunSQL ("update Officines set cheque p where CodeCSP " & rs("CodeCSP") & "")
i = i + 1
p = p + 1
End If
End If
Wend
End Sub
en espérant que quelqu'un puisse m'aider,
d'avance merci
vanyou
vanyou
Messages postés17Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention28 décembre 2004 28 déc. 2004 à 10:38
Rebonjour....
J'ai résolu mon pb :
'Dim rs As Recordset => il fallait remplacé ça par :
Dim rs As Object
Et ça
'Set rs db.OpenRecordset(sel)> par :
Set rs = CurrentDb.OpenRecordset(sel)
Mais maintenant je crois que j'ai un réel pb d'algo...
En fait ce que doit faire l'appli :
- l'utilisateur saisis :
- un premier n° (p) et un dernier n° (d) à affecter à un champs : soit 1 et 10 (soit (10-1+1) enregistrements à updater (nb))
- et le "premier" n° de l'enregistrement à updater (num_clt)
Seulement ça tourne dans le vide et au final j'ai affecté le "10" au premier enregistrement au lieu de par exemple si p=1, d=10, num_clt=1 :
Private Sub Commande46_Click()
Dim num_clt As Integer
num_clt = Me.num_client
Dim db As Database
Set db = DBEngine(0)(0)
Dim rs As Object
Dim sel As String
sel = "SELECT CodeCSP, cheque FROM Officines ORDER BY CodeCSP ASC"
Set rs = CurrentDb.OpenRecordset(sel)
Dim i As Integer
Dim j As Boolean
Dim p As Integer
Dim d As Integer
Dim nb As Integer
p = Me.premier ' premier n° de chèque
d = Me.dernier ' dernier n° de chèque
nb = d - p + 1 ' nombre de clients à affecter
i = 1
j = False
While Not rs.EOF
If j = False Then
If rs("CodeCSP") = num_clt Then DoCmd.RunSQL ("update Officines set cheque " & p & " where CodeCSP " & rs("CodeCSP") & "")
i = i + 1
p = p + 1
j = True
End If
Else
If i <= nb Then DoCmd.RunSQL ("update Officines set cheque " & p & " where CodeCSP " & rs("CodeCSP") & "")
i = i + 1
p = p + 1
End If
End If
Wend
End Sub