OVH Cloud OVH Cloud

Index !!!

3 réponses
Avatar
PHG13
Bonjour,

J'ai une erreure bizarre
" VOus devez liberez tous les descripteurs de ligne avant d'en obtenir de
nouveaux" -2147217883

J'ai ce message quand j'essai de remplir une table access
avec un tableau, cela fonctionne pour 3 enregistrements puis ca plante !ci
dessous un extrait du source

Merci

Dim CN As New ADODB.Connection
CN.Open
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\marges\marges.mdb;Persist
ecurity Info=False"
Dim rs As New ADODB.Recordset
rs.Open "Mois", CN, adOpenKeyset, adLockOptimistic, adCmdTableDirect

For i = 2 To n
If tableau(i, 1) <> "" Then
rs.Index = "PrimaryKey"
rs.Seek tableau(i, 1), adSeekFirstEQ
MsgBox (tableau(i, 1))
'
If rs.EOF Then
rs.AddNew

rs("affaires") = tableau(i, 1)
rs("mois1") = tableau(i, 2)
rs("mois2") = tableau(i, 3)
rs.Update


Else
'
rs("mois1") = tableau(i, 2)
rs("mois2") = tableau(i, 3)
rs.Update
End If
End If
Next i
rs.Close

3 réponses

Avatar
Axel Guerrier [MS]
Bonjour,

Essaie en changeant le type de curseur (client / serveur)

--
Axel GUERRIER
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.

"PHG13" wrote in message
news:bqn2j4$jf1$
Bonjour,

J'ai une erreure bizarre
" VOus devez liberez tous les descripteurs de ligne avant d'en obtenir de
nouveaux" -2147217883

J'ai ce message quand j'essai de remplir une table access
avec un tableau, cela fonctionne pour 3 enregistrements puis ca plante


!ci
dessous un extrait du source

Merci

Dim CN As New ADODB.Connection
CN.Open
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:margesmarges.mdb;Persist
ecurity Infoúlse"
Dim rs As New ADODB.Recordset
rs.Open "Mois", CN, adOpenKeyset, adLockOptimistic, adCmdTableDirect

For i = 2 To n
If tableau(i, 1) <> "" Then
rs.Index = "PrimaryKey"
rs.Seek tableau(i, 1), adSeekFirstEQ
MsgBox (tableau(i, 1))
'
If rs.EOF Then
rs.AddNew

rs("affaires") = tableau(i, 1)
rs("mois1") = tableau(i, 2)
rs("mois2") = tableau(i, 3)
rs.Update


Else
'
rs("mois1") = tableau(i, 2)
rs("mois2") = tableau(i, 3)
rs.Update
End If
End If
Next i
rs.Close





Avatar
PHG13
J'ai essayé les 4 groupes différents le pb reste le meme !

"Axel Guerrier [MS]" a écrit dans le message de
news:
Bonjour,

Essaie en changeant le type de curseur (client / serveur)

--
Axel GUERRIER
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.

"PHG13" wrote in message
news:bqn2j4$jf1$
> Bonjour,
>
> J'ai une erreure bizarre
> " VOus devez liberez tous les descripteurs de ligne avant d'en obtenir


de
> nouveaux" -2147217883
>
> J'ai ce message quand j'essai de remplir une table access
> avec un tableau, cela fonctionne pour 3 enregistrements puis ca plante
!ci
> dessous un extrait du source
>
> Merci
>
> Dim CN As New ADODB.Connection
> CN.Open
>


"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:margesmarges.mdb;Persist
> ecurity Infoúlse"
> Dim rs As New ADODB.Recordset
> rs.Open "Mois", CN, adOpenKeyset, adLockOptimistic, adCmdTableDirect
>
> For i = 2 To n
> If tableau(i, 1) <> "" Then
> rs.Index = "PrimaryKey"
> rs.Seek tableau(i, 1), adSeekFirstEQ
> MsgBox (tableau(i, 1))
> '
> If rs.EOF Then
> rs.AddNew
>
> rs("affaires") = tableau(i, 1)
> rs("mois1") = tableau(i, 2)
> rs("mois2") = tableau(i, 3)
> rs.Update
>
>
> Else
> '
> rs("mois1") = tableau(i, 2)
> rs("mois2") = tableau(i, 3)
> rs.Update
> End If
> End If
> Next i
> rs.Close
>
>
>




Avatar
Zoury
Salut! :O)

Axel parlait de la *location* du curseur et non de son *type*. ;O)

' Évite les Dim ... As New.. sur la même, ça cause plus de problème qu'autre
chose..
'***
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient ' ou adUseServer
rs.Open "Mois", CN, adOpenKeyset, adLockOptimistic, adCmdTableDirect
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous