Bonjour,
Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème
ligne, j'ai un message
Pilote ODBC Microsoft Access
Emplacement du curseur non valide
Pas de jeux de clefs défini
Est-ce un problème de nombre d'enregistrements ou autre ?
Le code est le suivant :
Sub UpdateData_ADO()
Dim Rs1 As ADODB.Recordset
Set Rs1 = New ADODB.Recordset
Rs1.Open Source:="Distributeurs", _
ActiveConnection:="DBQ=" & ThisWorkbook.Path &
"\DataBaseName.MDB;" & _
"Driver={Microsoft Access Driver (*.mdb)};",
_
CursorType:=adOpenStatic, _
LockType:=adLockOptimistic, _
Options:=adCmdTable
With Rs1
.MoveFirst
Do Until .EOF
If .Fields("Distributor") = "Café Paris" Then
!ContactName = "Eric"
.Update
End If
.MoveNext
Loop
End With
Rs1.Close
End Sub
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distributor Like 'Café Paris');" DoCmd.SetWarnings False DoCmd.RunSQL sSql DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:
Bonjour, Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème ligne, j'ai un message Pilote ODBC Microsoft Access Emplacement du curseur non valide Pas de jeux de clefs défini Est-ce un problème de nombre d'enregistrements ou autre ? Le code est le suivant :
Sub UpdateData_ADO() Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Rs1.Open Source:="Distributeurs", _ ActiveConnection:="DBQ=" & ThisWorkbook.Path & "DataBaseName.MDB;" & _ "Driver={Microsoft Access Driver (*.mdb)};", _ CursorType:OpenStatic, _ LockType:LockOptimistic, _ Options:CmdTable With Rs1 .MoveFirst Do Until .EOF If .Fields("Distributor") = "Café Paris" Then !ContactName = "Eric" .Update End If .MoveNext Loop End With Rs1.Close End Sub
D'avance merci
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distributor Like 'Café Paris');"
DoCmd.SetWarnings False
DoCmd.RunSQL sSql
DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:u5mYwp3zHHA.1184@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème
ligne, j'ai un message
Pilote ODBC Microsoft Access
Emplacement du curseur non valide
Pas de jeux de clefs défini
Est-ce un problème de nombre d'enregistrements ou autre ?
Le code est le suivant :
Sub UpdateData_ADO()
Dim Rs1 As ADODB.Recordset
Set Rs1 = New ADODB.Recordset
Rs1.Open Source:="Distributeurs", _
ActiveConnection:="DBQ=" & ThisWorkbook.Path &
"DataBaseName.MDB;" & _
"Driver={Microsoft Access Driver (*.mdb)};",
_
CursorType:OpenStatic, _
LockType:LockOptimistic, _
Options:CmdTable
With Rs1
.MoveFirst
Do Until .EOF
If .Fields("Distributor") = "Café Paris" Then
!ContactName = "Eric"
.Update
End If
.MoveNext
Loop
End With
Rs1.Close
End Sub
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distributor Like 'Café Paris');" DoCmd.SetWarnings False DoCmd.RunSQL sSql DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:
Bonjour, Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème ligne, j'ai un message Pilote ODBC Microsoft Access Emplacement du curseur non valide Pas de jeux de clefs défini Est-ce un problème de nombre d'enregistrements ou autre ? Le code est le suivant :
Sub UpdateData_ADO() Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Rs1.Open Source:="Distributeurs", _ ActiveConnection:="DBQ=" & ThisWorkbook.Path & "DataBaseName.MDB;" & _ "Driver={Microsoft Access Driver (*.mdb)};", _ CursorType:OpenStatic, _ LockType:LockOptimistic, _ Options:CmdTable With Rs1 .MoveFirst Do Until .EOF If .Fields("Distributor") = "Café Paris" Then !ContactName = "Eric" .Update End If .MoveNext Loop End With Rs1.Close End Sub
D'avance merci
jerome crevecoeur
Salutations,
1) Il vaudrait mieux utiliser une chaine de connexion et OLE et non pas ODBC. LA plupart du temps, c'est bien plus performant: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:mydatabase.mdb;User Idmin;Password=;
Trouvée sur ce site: http://www.connectionstrings.com/?carrier¬cess
2) 700 000 c'est beaucoup. Il faudrait essayer de faire un .UpdateBatch adAfectsAllChapters de temps à autre pour actualiser la mise à jour sur le serveur.
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distribu tor Like 'Café Paris');" DoCmd.SetWarnings False DoCmd.RunSQL sSql DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:
Bonjour, Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème ligne, j'ai un message Pilote ODBC Microsoft Access Emplacement du curseur non valide Pas de jeux de clefs défini Est-ce un problème de nombre d'enregistrements ou autre ? Le code est le suivant :
Sub UpdateData_ADO() Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Rs1.Open Source:="Distributeurs", _ ActiveConnection:="DBQ=" & ThisWorkbook.Path & "DataBaseName.MDB;" & _ "Driver={Microsoft Access Driver (*.m db)};", _ CursorType:OpenStatic, _ LockType:LockOptimistic, _ Options:CmdTable With Rs1 .MoveFirst Do Until .EOF If .Fields("Distributor") = "Café Paris" Then !ContactName = "Eric" .Update End If .MoveNext Loop End With Rs1.Close End Sub
D'avance merci
Salutations,
1) Il vaudrait mieux utiliser une chaine de connexion et OLE et non pas
ODBC.
LA plupart du temps, c'est bien plus performant:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:mydatabase.mdb;User
Id=admin;Password=;
Trouvée sur ce site:
http://www.connectionstrings.com/?carrier=access
2) 700 000 c'est beaucoup.
Il faudrait essayer de faire un .UpdateBatch adAfectsAllChapters de
temps à autre pour actualiser la mise à jour sur le serveur.
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distribu tor Like 'Café Paris');"
DoCmd.SetWarnings False
DoCmd.RunSQL sSql
DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:u5mYwp3zHHA.1184@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème
ligne, j'ai un message
Pilote ODBC Microsoft Access
Emplacement du curseur non valide
Pas de jeux de clefs défini
Est-ce un problème de nombre d'enregistrements ou autre ?
Le code est le suivant :
Sub UpdateData_ADO()
Dim Rs1 As ADODB.Recordset
Set Rs1 = New ADODB.Recordset
Rs1.Open Source:="Distributeurs", _
ActiveConnection:="DBQ=" & ThisWorkbook.Path &
"DataBaseName.MDB;" & _
"Driver={Microsoft Access Driver (*.m db)};",
_
CursorType:=adOpenStatic, _
LockType:=adLockOptimistic, _
Options:=adCmdTable
With Rs1
.MoveFirst
Do Until .EOF
If .Fields("Distributor") = "Café Paris" Then
!ContactName = "Eric"
.Update
End If
.MoveNext
Loop
End With
Rs1.Close
End Sub
1) Il vaudrait mieux utiliser une chaine de connexion et OLE et non pas ODBC. LA plupart du temps, c'est bien plus performant: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:mydatabase.mdb;User Idmin;Password=;
Trouvée sur ce site: http://www.connectionstrings.com/?carrier¬cess
2) 700 000 c'est beaucoup. Il faudrait essayer de faire un .UpdateBatch adAfectsAllChapters de temps à autre pour actualiser la mise à jour sur le serveur.
Tu as essayé avec une requête action de mise à jour
sSql = "UPDATE Distributeurs SET ContactName='Eric' WHERE (Distribu tor Like 'Café Paris');" DoCmd.SetWarnings False DoCmd.RunSQL sSql DoCmd.SetWarnings True
"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:
Bonjour, Dans une requête ADO avec la méthode Update, aux environ de la 700 000 ème ligne, j'ai un message Pilote ODBC Microsoft Access Emplacement du curseur non valide Pas de jeux de clefs défini Est-ce un problème de nombre d'enregistrements ou autre ? Le code est le suivant :
Sub UpdateData_ADO() Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Rs1.Open Source:="Distributeurs", _ ActiveConnection:="DBQ=" & ThisWorkbook.Path & "DataBaseName.MDB;" & _ "Driver={Microsoft Access Driver (*.m db)};", _ CursorType:OpenStatic, _ LockType:LockOptimistic, _ Options:CmdTable With Rs1 .MoveFirst Do Until .EOF If .Fields("Distributor") = "Café Paris" Then !ContactName = "Eric" .Update End If .MoveNext Loop End With Rs1.Close End Sub