J'ai deja posté un code en C++ pour convertir une base access vers Mysql.
J'ai refait la meme chose en VB, directement sous access et en 10 fois moins de temps.
C'est en fait le code d'un bouton qu'il faut metrre dans un formulaire afin de sauvegarder tous les enregistrements d'une table.
La table s'appelle MyTable, et elle contien 4 champs noté field1 field2 field3 et field4
Le résultat est un fichier contenant le code d'ajout de toutes les lignes la table, du type:
INSERT INTO MyTable VALUES ('field1a','field2a','field3a','field4a');
INSERT INTO MyTable VALUES ('field1b','field2b','field3b','field4b');
etc...
Vous devez donc créer un formulaire sous access, y mettre un bouton(ne pas utiliser l'assistant)
Faire un clique droit sur le bouton et choisir "créer code évenement"
La, inserer le code ci joint, modifié selon vos propriétés...
Source / Exemple :
voici le code pour access to mysql
Private Sub NomDuBouton_Click()
Dim bd As Database
Dim strSQL As String
Dim rec As Recordset
Dim ligne As String
Dim FSys As Object
Dim MonFic As Object
Set bd = CurrentDb
strSQL = "SELECT * FROM MyTable"
'remplir le recordset
Set rec = bd.OpenRecordset(strSQL, dbOpenForwardOnly)
'Pour creer le fichier texte
Set FSys = CreateObject("Scripting.FileSystemObject")
'Choisir l'adresse du fichier de resultat
Set MonFic = FSys.CreateTextFile("adresse du fichier : C:\fichier.txt")
'Pour écrire dans le fichier texte
With MonFic
'Tant que le recordset contient des lignes d'enregistrement...
While Not (rec.EOF)
ligne = ""
ligne = "INSERT INTO AUXILIAIRES VALUES ('" & rec![field1] & "' , '" & rec![field2] & "' , '" & rec![field3] & "' , '" & rec![field4] & "' ) ;"
'On pour ecrit chaque ligne dans le fichier
.writeLine ligne
'on saute vers l'enregistrement suivant du recordset
rec.MoveNext
Wend
End With
End Sub
voici le code pour mysql to access
Private Sub Bouton_Click()
Dim bd As Database
Dim pointeur As String
Dim strSQL As String
Dim monfichier As String
Dim FSys As Object
Set bd = CurrentDb
pointeur = FreeFile
monfichier = "C:\Documents and Settings\Zoukozouko\Bureau\fichier.txt"
Open monfichier For Input As pointeur
Line Input #pointeur, strSQL
strSQL = FSys.readLine
Do While Not (EOF(pointeur))
bd.Execute (strSQL)
strSQL = FSys.readLine
Loop
Close pointeur
End Sub
Conclusion :
J'ai changé le niveau de la source (merci dragon).
Elle semblait etre trop simple pour les amateurs de sources "initiés"
Mes excuses d'avance au débutant qui ne comprendraient pas toutes les fonctions du script.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.