Urgent : pb requete adodb

elbrahimo Messages postés 25 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 25 novembre 2004 - 29 oct. 2004 à 07:15
elbrahimo Messages postés 25 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 25 novembre 2004 - 29 oct. 2004 à 22:13
salut à tous, personne n' encore pu m'aider, j'ai le message :
"erreur 3251 object or provider is not capable of prforming ..."
j'essaye deseperement de mettre à jour une table (tab2) , avec des donnéesd'une autre table (tab1) voilà le code et merci de me venir en aide !!!

# 'dans un module :

Public MaConnection As New ADODB.Connection
Public ChaineCnx As String

Public Sub Connect_base()



ChaineCnx = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & "c:\toto.mdb" & ";" & _
"Persist Security Info=False"

MaConnection.ConnectionString = ChaineCnx
MaConnection.Open ChaineCnx
-----------------------------------

Dim Res As New ADODB.Recordset
Dim Res2 As New ADODB.Recordset

Public Sub MajBorde_Click()

# 'requete qui selectionne les lignes necessaires :
Res.Open "select currentdate,entryname,pages from tab1,tab2 where entryname=nom", MaConnection

While Not Res.EOF

Res2.Open "select date,nom,quantité from tab2 where nom ='" & Res.Fields(1) & "'", MaConnection

Res2.Fields(0) = Res.Fields(0)
Res2.Fields(2) = Res2.Fields(2) + Res.Fields(2)

Res2.Update

Res.MoveNext

Wend
End Sub

5 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
29 oct. 2004 à 09:16
Il te manque un .EDIT pour faire l' UPDATE de ton RES2

t'as essayé en DAO, en cochant projet Références...Microsoft DAO 3.51 :

Set Db = OpenDatabase(c:\toto.mdb)
Set Res = Db.OpenRecordset("SELECT currentdate,entryname,pages from tab1,tab2 where entryname= ' " & nom &" ' ")
if Res.Recordcount<>0 then
do Until Res.eof Set Res2 Db.OpenRecordset("SELECT date,nom,quantité from tab2 where nom' " & Res("CurrentDate") & " ' ")
if Res2.recordcount<>0 then
Res2.Edit
Res2(0) = Res(0)
Res2(2) = Res2(2) + Res(2)
Res2.Update
end if
Res.Movenext
Loop
end if
Set Res=Nothing
Set Db=Nothing

It@li@
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 oct. 2004 à 10:12
SAlut,

OU alors tu peux faire les update en requete SQL dans la source du Rs2

Une question sur ta premiere requete :
"select currentdate,entryname,pages from tab1,tab2 where entryname=nom"


Tu peux faire un FROM tab1, tab2 ?
Si oui quel est l avantage et qu est ce que ca te retourne ?

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
29 oct. 2004 à 10:23
Effectivement jrivet, je n'ai pas vu l'interet moi non plus !!

It@li@
0
bidoch78 Messages postés 67 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 2 décembre 2005
29 oct. 2004 à 13:56
C'est chaud ton code, la ?

1°) Je pense que tu voulais faire une jointure dans ta 1er requete
entre tab1 et tab2, hors je ne vois pas la condition jointure (WHERE tab1. = tab2.)

2°) une facon rapide d'updater sans passer par un recordset

While Not Res.EOF
MaConnection.Execute "UPDATE tab2 SET monchamp " & Res![Champ2] WHERE nom '" & Res.Fields(1) & "'"

Res.MoveNext

Wend

Note : evite le genre de syntaxe Res.Fields(0), car il est difficile de comprende de quoi on parle utilise plutot Res.Fields("Champ")
ou bien Res![Champ] par exemple

Bidoch78
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elbrahimo Messages postés 25 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 25 novembre 2004
29 oct. 2004 à 22:13
merci à tous !!! vous m'avez bien aidé

@ +
0
Rejoignez-nous