Bonjour,
J'ai t=E9l=E9charger le driver suivant:=20
MyODBC-standard-3.51.8-win.exe
je l'ai execut=E9 et il s'est install=E9.
Mais je suis perdu ensuite pour importer les donn=E9es qui=20
m'interressent.
Je souhaite par exemple r=E9cup=E9rer le dernier=20
enregistrement de la table 'nigeria' de la=20
base 'indicateur'.
Pourriez vous m'expliqu=E9 la marche =E0 suivre ou un lien=20
m'expliquant comment proc=E9d=E9?
Merci d'avance.
Cordialement Laurent
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Laurent,
Voici une façon de faire en utilisant ADO (activex data object). Personnellement, je n'ai jamais eu l'occasion de tester cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor), barre des menus / outils / référence / et tu coches la référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données + extension du fichier NomTable = "Nigeria" Requête = "Select * From " & NomTable & "" 'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe. "User Id=myUsername;" & _ "Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour extraire seulement le dernier enregistrement.
'------------------- Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer Dim Cnt As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Rg As Range, Sh As Worksheet Dim NbEnr As Long, CheminDb As String Dim NomTable As String, NomFeuille As String Dim Requete As String
'Ouverture du recordset Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête If Rst.RecordCount = 0 Then MsgBox "Aucun enregistrement trouvé." & vbCrLf & _ "Fin de l'opération.", vbInformation + vbOKOnly, "Annulation" ' Ferme la connection et le recordset Rst.Close: Cnt.Close 'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing Exit Sub End If
'Éviter le rafraîchissement de l'écran Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active. NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les données Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où 'le recordset va être copié With Sh Set Rg = .Range("A1") End With
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit :
Do Rg.Offset(, C) = Rst.Fields(C).Name C = C + 1 X = X + 1 Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure Worksheets(NomFeuille).Select
' Ferme la connection et le recordset Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing
End Sub '------------------------------------------
Salutations!
"Laurent" a écrit dans le message de news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent
Bonjour Laurent,
Voici une façon de faire en utilisant ADO (activex data object). Personnellement, je n'ai jamais eu l'occasion de tester
cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor), barre des menus / outils / référence / et tu coches la
référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données + extension du fichier
NomTable = "Nigeria"
Requête = "Select * From " & NomTable & ""
'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe.
"User Id=myUsername;" & _
"Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour extraire seulement le dernier enregistrement.
'-------------------
Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer
Dim Cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Rg As Range, Sh As Worksheet
Dim NbEnr As Long, CheminDb As String
Dim NomTable As String, NomFeuille As String
Dim Requete As String
'Ouverture du recordset
Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête
If Rst.RecordCount = 0 Then
MsgBox "Aucun enregistrement trouvé." & vbCrLf & _
"Fin de l'opération.", vbInformation + vbOKOnly, "Annulation"
' Ferme la connection et le recordset
Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing: Set Sh = Nothing
Exit Sub
End If
'Éviter le rafraîchissement de l'écran
Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active.
NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les données
Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où
'le recordset va être copié
With Sh
Set Rg = .Range("A1")
End With
'Si tu es intéressé de récupérer directement les noms
'des champs de ton recordset, tu peux utiliser ce
'qui suit :
Do
Rg.Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure
Worksheets(NomFeuille).Select
' Ferme la connection et le recordset
Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing: Set Sh = Nothing
End Sub
'------------------------------------------
Salutations!
"Laurent" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:2449201c45f4d$6b1957c0$a501280a@phx.gbl...
Bonjour,
J'ai télécharger le driver suivant:
MyODBC-standard-3.51.8-win.exe
je l'ai executé et il s'est installé.
Mais je suis perdu ensuite pour importer les données qui
m'interressent.
Je souhaite par exemple récupérer le dernier
enregistrement de la table 'nigeria' de la
base 'indicateur'.
Pourriez vous m'expliqué la marche à suivre ou un lien
m'expliquant comment procédé?
Merci d'avance.
Cordialement Laurent
Voici une façon de faire en utilisant ADO (activex data object). Personnellement, je n'ai jamais eu l'occasion de tester cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor), barre des menus / outils / référence / et tu coches la référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données + extension du fichier NomTable = "Nigeria" Requête = "Select * From " & NomTable & "" 'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe. "User Id=myUsername;" & _ "Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour extraire seulement le dernier enregistrement.
'------------------- Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer Dim Cnt As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Rg As Range, Sh As Worksheet Dim NbEnr As Long, CheminDb As String Dim NomTable As String, NomFeuille As String Dim Requete As String
'Ouverture du recordset Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête If Rst.RecordCount = 0 Then MsgBox "Aucun enregistrement trouvé." & vbCrLf & _ "Fin de l'opération.", vbInformation + vbOKOnly, "Annulation" ' Ferme la connection et le recordset Rst.Close: Cnt.Close 'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing Exit Sub End If
'Éviter le rafraîchissement de l'écran Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active. NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les données Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où 'le recordset va être copié With Sh Set Rg = .Range("A1") End With
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit :
Do Rg.Offset(, C) = Rst.Fields(C).Name C = C + 1 X = X + 1 Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure Worksheets(NomFeuille).Select
' Ferme la connection et le recordset Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing
End Sub '------------------------------------------
Salutations!
"Laurent" a écrit dans le message de news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent
michdenis
Bonjour DD,
Si tu préfères utiliser une ODBC, beaucoup de documentation sur le sujet à cette adresse :
"Laurent" a écrit dans le message de news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent
Bonjour DD,
Si tu préfères utiliser une ODBC, beaucoup de documentation sur le sujet à cette adresse :
"Laurent" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:2449201c45f4d$6b1957c0$a501280a@phx.gbl...
Bonjour,
J'ai télécharger le driver suivant:
MyODBC-standard-3.51.8-win.exe
je l'ai executé et il s'est installé.
Mais je suis perdu ensuite pour importer les données qui
m'interressent.
Je souhaite par exemple récupérer le dernier
enregistrement de la table 'nigeria' de la
base 'indicateur'.
Pourriez vous m'expliqué la marche à suivre ou un lien
m'expliquant comment procédé?
Merci d'avance.
Cordialement Laurent
"Laurent" a écrit dans le message de news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent
Laurent
Merci pour toutes ces informations. Cordialement
-----Message d'origine----- Bonjour Laurent,
Voici une façon de faire en utilisant ADO (activex data object). Personnellement, je n'ai jamais eu l'occasion de
tester
cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor), barre des menus / outils / référence / et tu coches la
référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données + extension du fichier
NomTable = "Nigeria" Requête = "Select * From " & NomTable & "" 'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe. "User Id=myUsername;" & _ "Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour extraire seulement le dernier enregistrement.
'------------------- Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer Dim Cnt As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Rg As Range, Sh As Worksheet Dim NbEnr As Long, CheminDb As String Dim NomTable As String, NomFeuille As String Dim Requete As String
'Ouverture du recordset Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête If Rst.RecordCount = 0 Then MsgBox "Aucun enregistrement trouvé." & vbCrLf & _ "Fin de l'opération.", vbInformation + vbOKOnly, "Annulation"
' Ferme la connection et le recordset Rst.Close: Cnt.Close 'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing Exit Sub End If
'Éviter le rafraîchissement de l'écran Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active. NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les données
Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où 'le recordset va être copié With Sh Set Rg = .Range("A1") End With
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit :
Do Rg.Offset(, C) = Rst.Fields(C).Name C = C + 1 X = X + 1 Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure Worksheets(NomFeuille).Select
' Ferme la connection et le recordset Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing
End Sub '------------------------------------------
Salutations!
"Laurent" a écrit dans le message de
news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent
.
Merci pour toutes ces informations.
Cordialement
-----Message d'origine-----
Bonjour Laurent,
Voici une façon de faire en utilisant ADO (activex data
object). Personnellement, je n'ai jamais eu l'occasion de
tester
cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la
référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor),
barre des menus / outils / référence / et tu coches la
référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement
les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données +
extension du fichier
NomTable = "Nigeria"
Requête = "Select * From " & NomTable & ""
'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe.
"User Id=myUsername;" & _
"Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour
extraire seulement le dernier enregistrement.
'-------------------
Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer
Dim Cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Rg As Range, Sh As Worksheet
Dim NbEnr As Long, CheminDb As String
Dim NomTable As String, NomFeuille As String
Dim Requete As String
'Ouverture du recordset
Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête
If Rst.RecordCount = 0 Then
MsgBox "Aucun enregistrement trouvé." & vbCrLf & _
"Fin de l'opération.", vbInformation +
vbOKOnly, "Annulation"
' Ferme la connection et le recordset
Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing: Set Sh = Nothing
Exit Sub
End If
'Éviter le rafraîchissement de l'écran
Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active.
NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les
données
Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où
'le recordset va être copié
With Sh
Set Rg = .Range("A1")
End With
'Si tu es intéressé de récupérer directement les noms
'des champs de ton recordset, tu peux utiliser ce
'qui suit :
Do
Rg.Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure
Worksheets(NomFeuille).Select
' Ferme la connection et le recordset
Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing: Set Sh = Nothing
End Sub
'------------------------------------------
Salutations!
"Laurent" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:2449201c45f4d$6b1957c0$a501280a@phx.gbl...
Bonjour,
J'ai télécharger le driver suivant:
MyODBC-standard-3.51.8-win.exe
je l'ai executé et il s'est installé.
Mais je suis perdu ensuite pour importer les données qui
m'interressent.
Je souhaite par exemple récupérer le dernier
enregistrement de la table 'nigeria' de la
base 'indicateur'.
Pourriez vous m'expliqué la marche à suivre ou un lien
m'expliquant comment procédé?
Merci d'avance.
Cordialement Laurent
Voici une façon de faire en utilisant ADO (activex data object). Personnellement, je n'ai jamais eu l'occasion de
tester
cette approche avec MySQL.
Pour exécuter ce code, tu dois ajouter à ton projet, la référence suivante :
Microsoft activex data objects 2.0 librairy
Pour ce faire, dans la feneêtre VBE(visual basic editor), barre des menus / outils / référence / et tu coches la
référence mentionnée.
Dans cette procédure, tu dois renseigner convenablement les 3 variables suivantes :
CheminDb = Chemin + Nom du fichier base de données + extension du fichier
NomTable = "Nigeria" Requête = "Select * From " & NomTable & "" 'Ceci extrait tous les enregistrements de ta table.
Enfin ceci : Ton nom d'utilisateur et ton mot de passe. "User Id=myUsername;" & _ "Password=myPassword"
Si cela fonctionne, il y a moyen de raffiner un peu pour extraire seulement le dernier enregistrement.
'------------------- Sub ImporterDesDonnéesDeAccess()
Dim X As Integer, C As Integer Dim Cnt As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Rg As Range, Sh As Worksheet Dim NbEnr As Long, CheminDb As String Dim NomTable As String, NomFeuille As String Dim Requete As String
'Ouverture du recordset Rst.Open Requete, Cnt, adOpenStatic
'Si aucun enregistrement est trouvé lors de la requête If Rst.RecordCount = 0 Then MsgBox "Aucun enregistrement trouvé." & vbCrLf & _ "Fin de l'opération.", vbInformation + vbOKOnly, "Annulation"
' Ferme la connection et le recordset Rst.Close: Cnt.Close 'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing Exit Sub End If
'Éviter le rafraîchissement de l'écran Application.ScreenUpdating = False
'Conserve dans une variable le nom de la feuille active. NomFeuille = ThisWorkbook.ActiveSheet.Name
'Ajoute une nouvelle feuille où seront acheminées les données
Set Sh = Worksheets.Add
'détermine la cellule supérieur gauche où 'le recordset va être copié With Sh Set Rg = .Range("A1") End With
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit :
Do Rg.Offset(, C) = Rst.Fields(C).Name C = C + 1 X = X + 1 Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
'Sélection de la feuille au départ de la procédure Worksheets(NomFeuille).Select
' Ferme la connection et le recordset Rst.Close: Cnt.Close
'Libère la mémoire vive occupée par les objets Set Rst = Nothing: Set Cnt = Nothing Set Rg = Nothing: Set Sh = Nothing
End Sub '------------------------------------------
Salutations!
"Laurent" a écrit dans le message de
news:2449201c45f4d$6b1957c0$ Bonjour, J'ai télécharger le driver suivant: MyODBC-standard-3.51.8-win.exe je l'ai executé et il s'est installé. Mais je suis perdu ensuite pour importer les données qui m'interressent. Je souhaite par exemple récupérer le dernier enregistrement de la table 'nigeria' de la base 'indicateur'. Pourriez vous m'expliqué la marche à suivre ou un lien m'expliquant comment procédé? Merci d'avance. Cordialement Laurent