OVH Cloud OVH Cloud

ATTACHER UN TABLES SUITE...

3 réponses
Avatar
NEWS FREE
Bonsoir à tous

Hier soir j'ai fais une demande conçerant le moyen d'attacher
plusieur tables dont le nom figure dans le champ d'une autre table....
Raymand m'ayant becaoup aidé m'a transmit le code suicvant que j'ai modifié
a ma "sauce"

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim strSql As String
strSql = "SELECT toto.* FROM toto WHERE toto.Madate Between
[Formulaires]![Formulaire1]![Madatedebut] And
[Formulaires]![Formulaire1]![Madatefin];"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
DoCmd.TransferDatabase acLink, "microsoft access",
"\\TR-GL\PIOLET\Piolet_UO_mensuelles.mdb", acTable, Rs!nomdetable,
Rs!nomdetable
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing

End Sub

le pb est le suivant c'est que le module s'arrete a la cde suivante :
Set Rs = Db.OpenRecordset(strSql) en me disant qu'il y avait un problem de
parametre erreur 3061 si mes souvenirs sont bons !, je suis sou access 97,
cela as t il une importance ?

Merci à tous pour votre aide
et bonne fin de soirée !
MM

3 réponses

Avatar
Raymond [mvp]
Bonsoir.

C'était tard hier soir ! il faut passer les paramètres à la requête sinon ça
les réclame. faut tout changer.
tu fais une requête enregistrée nommée "requête1" par exemple avec le sql
suivant:
SELECT toto.* FROM toto WHERE toto.Madate Between Debut And Fin;

tu remplaces ton code par:
Dim Qry As DAO.QueryDef
Dim Rs As DAO.Recordset
Set Qry = CurrentDb.QueryDefs("Requête1")
Qry.Parameters("Debut") = Forms!Formulaire1!Madatedebut
Qry.Parameters("Fin") = Forms!Formulaire1!Madatefin
Set Rs = Qry.OpenRecordset
While Not Rs.EOF
DoCmd.TransferDatabase acLink, ....................
Rs.MoveNext
Wend
Set Qry = Nothing
Set Rs = Nothing

mes excuses pour l'erreur grossière.
j'espère que ça va aller.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"NEWS FREE" a écrit dans le message de news:
41532435$0$11727$
Bonsoir à tous

Hier soir j'ai fais une demande conçerant le moyen d'attacher
plusieur tables dont le nom figure dans le champ d'une autre table....
Raymand m'ayant becaoup aidé m'a transmit le code suicvant que j'ai
modifié
a ma "sauce"

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim strSql As String
strSql = "SELECT toto.* FROM toto WHERE toto.Madate Between
[Formulaires]![Formulaire1]![Madatedebut] And
[Formulaires]![Formulaire1]![Madatefin];"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
DoCmd.TransferDatabase acLink, "microsoft access",
"TR-GLPIOLETPiolet_UO_mensuelles.mdb", acTable, Rs!nomdetable,
Rs!nomdetable
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing

End Sub

le pb est le suivant c'est que le module s'arrete a la cde suivante :
Set Rs = Db.OpenRecordset(strSql) en me disant qu'il y avait un problem
de
parametre erreur 3061 si mes souvenirs sont bons !, je suis sou access 97,
cela as t il une importance ?

Merci à tous pour votre aide
et bonne fin de soirée !
MM





Avatar
NEWS FREE
Pas de soucis Raymond et arretons de dire que tu est the best, tu est the
Best :)

et en plus fort sympatique Marc


"Raymond [mvp]" a écrit dans le message de
news: uFUe$
Bonsoir.

C'était tard hier soir ! il faut passer les paramètres à la requête sinon
ça

les réclame. faut tout changer.
tu fais une requête enregistrée nommée "requête1" par exemple avec le sql
suivant:
SELECT toto.* FROM toto WHERE toto.Madate Between Debut And Fin;

tu remplaces ton code par:
Dim Qry As DAO.QueryDef
Dim Rs As DAO.Recordset
Set Qry = CurrentDb.QueryDefs("Requête1")
Qry.Parameters("Debut") = Forms!Formulaire1!Madatedebut
Qry.Parameters("Fin") = Forms!Formulaire1!Madatefin
Set Rs = Qry.OpenRecordset
While Not Rs.EOF
DoCmd.TransferDatabase acLink, ....................
Rs.MoveNext
Wend
Set Qry = Nothing
Set Rs = Nothing

mes excuses pour l'erreur grossière.
j'espère que ça va aller.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"NEWS FREE" a écrit dans le message de news:
41532435$0$11727$
Bonsoir à tous

Hier soir j'ai fais une demande conçerant le moyen d'attacher
plusieur tables dont le nom figure dans le champ d'une autre table....
Raymand m'ayant becaoup aidé m'a transmit le code suicvant que j'ai
modifié
a ma "sauce"

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim strSql As String
strSql = "SELECT toto.* FROM toto WHERE toto.Madate Between
[Formulaires]![Formulaire1]![Madatedebut] And
[Formulaires]![Formulaire1]![Madatefin];"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
DoCmd.TransferDatabase acLink, "microsoft access",
"TR-GLPIOLETPiolet_UO_mensuelles.mdb", acTable, Rs!nomdetable,
Rs!nomdetable
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing

End Sub

le pb est le suivant c'est que le module s'arrete a la cde suivante :
Set Rs = Db.OpenRecordset(strSql) en me disant qu'il y avait un problem
de
parametre erreur 3061 si mes souvenirs sont bons !, je suis sou access
97,


cela as t il une importance ?

Merci à tous pour votre aide
et bonne fin de soirée !
MM









Avatar
Raymond [mvp]
.../...
je voulais mettre aussi la version sans requête enregistrée mais je l'ai
oubliée.

On Error GoTo ........
Dim Db As Dao.Database
Dim Rs As Dao.Recordset
Dim strSql As String

strSql = "SELECT table1.* FROM table1 WHERE table1.Madate Between #" &
Format(Forms![Formulaire1]![Madatedebut], "mm/dd/yyyy") & "# And #" &
Format(Forms![Formulaire1]![Madatefin], "mm/dd/yyyy") & "#;"
ou
strSql = "SELECT table1.* FROM table1 WHERE table1.Madate Between #" &
Format(Me![Madatedebut], "mm/dd/yyyy") & "# And #" &
Format(Me![Madatefin], "mm/dd/yyyy") & "#;"

Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
DoCmd.TransferDatabase acLink, "microsoft access",
"labaseprincipale", acTable, Rs!nomdetable, Rs!nomdetable
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"NEWS FREE" a écrit dans le message de news:
41532d55$0$11720$
Pas de soucis Raymond et arretons de dire que tu est the best, tu est the
Best :)

et en plus fort sympatique Marc


"Raymond [mvp]" a écrit dans le message de
news: uFUe$
Bonsoir.

C'était tard hier soir ! il faut passer les paramètres à la requête sinon
ça

les réclame. faut tout changer.
tu fais une requête enregistrée nommée "requête1" par exemple avec le sql
suivant:
SELECT toto.* FROM toto WHERE toto.Madate Between Debut And Fin;

tu remplaces ton code par:
Dim Qry As DAO.QueryDef
Dim Rs As DAO.Recordset
Set Qry = CurrentDb.QueryDefs("Requête1")
Qry.Parameters("Debut") = Forms!Formulaire1!Madatedebut
Qry.Parameters("Fin") = Forms!Formulaire1!Madatefin
Set Rs = Qry.OpenRecordset
While Not Rs.EOF
DoCmd.TransferDatabase acLink, ....................
Rs.MoveNext
Wend
Set Qry = Nothing
Set Rs = Nothing

mes excuses pour l'erreur grossière.
j'espère que ça va aller.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"NEWS FREE" a écrit dans le message de news:
41532435$0$11727$
Bonsoir à tous

Hier soir j'ai fais une demande conçerant le moyen d'attacher
plusieur tables dont le nom figure dans le champ d'une autre table....
Raymand m'ayant becaoup aidé m'a transmit le code suicvant que j'ai
modifié
a ma "sauce"

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim strSql As String
strSql = "SELECT toto.* FROM toto WHERE toto.Madate Between
[Formulaires]![Formulaire1]![Madatedebut] And
[Formulaires]![Formulaire1]![Madatefin];"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
DoCmd.TransferDatabase acLink, "microsoft access",
"TR-GLPIOLETPiolet_UO_mensuelles.mdb", acTable, Rs!nomdetable,
Rs!nomdetable
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing

End Sub

le pb est le suivant c'est que le module s'arrete a la cde suivante :
Set Rs = Db.OpenRecordset(strSql) en me disant qu'il y avait un
problem
de
parametre erreur 3061 si mes souvenirs sont bons !, je suis sou access
97,


cela as t il une importance ?

Merci à tous pour votre aide
et bonne fin de soirée !
MM