Donnée dans recordset ADO
Bonjour,
Je suis bloqué. Je n'arrive pas à mettre une donnée dans l'enregistrement sélectionné. Dans le code qui suit, il me met des 1 dans le champ "champ1" de tous les enregistrements.
Mon but est qu'il le mette uniquement dans l'enregistrement sélectionné selon la condition du champ2.
Merci de votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| ' Dimension
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
'Option Base 0
Option Explicit
Sub Main1()
If DBConnection(True) = True Then
Set rs = New ADODB.Recordset
If (rs.State = 1) Then rs.Close
rs.Open "SELECT champ1 " & _
"FROM table1 " & _
"WHERE champ2 = 'Paris' " & _
"", cn, adOpenKeyset, adLockOptimistic, adCmdText
rs.Fields("champ1").Value = "1"
rs.Update
End If
If (rs.State = 1) Then rs.Close
Set rs = Nothing
Call DBConnection(False)
End Sub
Private Function DBConnection(ByVal bOpen As Boolean) As Boolean
Dim bResult As Boolean
On Error GoTo Connect_Error
bResult = False
If bOpen = True Then
'Connexion
Set cn = New ADODB.Connection
cn.CursorLocation = adUseServer
cn.Open ("DSN=ERP1")
bResult = (cn.State = 1)
Else
'Déconnexion
If cn.State = 1 Then cn.Close
Set cn = Nothing
bResult = True
End If
DBConnection = bResult
Exit Function
Connect_Error:
MsgBox "Erreur lors de la connexion à l'ERP.", vbCritical
DBConnection = False
End Function |