Chaine de connection

alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 29 nov. 2004 à 11:59
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 30 nov. 2004 à 08:04
bonjour,

j'administre un site intranet avec comme noyeau une base access.
dans un repertoire different de ma base access, j'ai un classeur excel pourvu d'une procedure evenementielle 'Workbook_Open()' qui est sense mettre a jour les donnees du classeur a son ouverture.
en fait, je desire que le client client puisse cliquer sur un lien hypertexte d'une de mes pages web et que ce lien ouvre le classeur excel en mettant a jour les donnees qu'il contient depuis ma base access.

pour que la mise a jour de ma base access puisse avoir lieu, j'ai realise le petit code suivant:
Private Sub Workbook_Open()
Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
chaine de connection => voire plus bas
cnx.Open
rst.Open "SELECT * FROM Base;", cnx
aaa = 1
Do While rst.EOF <> True
Sheets("donnees").Cells(aaa, 1) = rst(1)
aaa = aaa + 1
rst.MoveNext
Loop
rst.Close
cnx.Close
End Sub

tout ca plante car ma chaine de connection semble ne pas etre valide: voici ce que j'ai essaye:
'cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Left(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) - 13)) & "/Donnees/DONNEES.mdb;"

cnx.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Left(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) - 13)) & "/Donnees/DONNEES.mdb;"

'cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=donnees_site" (ou donnees_site=nom du dsn)

'cnx.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=donnees_site" (ou donnees_site=nom du dsn)

ATTENTION: tout fonctionne parfaitement lorsque je ne passe pas par ce foutu lien hypertexte (i.e. tout marche en local mais pas sur serveur).

A L'AIDE !!! AVEZ-VOUS UNE SOLUTION ???

merci a vous,

alonsyl

2 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
30 nov. 2004 à 08:04
t'as essayé en ADO ??? :

En Cochant Projet...Références..Microsoft DAO 3.51 Object Library.

Set Db = OpenDatabase(Left(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) - 13)) & "/Donnees/DONNEES.mdb")
Set Rq = Db.OpenRecordset("SELECT * FROM Base")
If Rq.RecordCount <> 0 Then
Do Until Rq.eof

Sheets("donnees").Cells(aaa, 1) = rst(1)
aaa = aaa + 1

Rq.Movenext
Loop
end If
Set Rq=Nothing
Set Db=Nothing

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
30 nov. 2004 à 08:04
en DAO je veux dire !!

It@li@
0
Rejoignez-nous