ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 2008
-
18 juil. 2006 à 19:12
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 2008
-
20 juil. 2006 à 19:18
Bonjour,
Donc voilà j'ai une base access avec comme table T1 contenant trois champs.
Voici mon code d'exportation:
Private Sub Command1_Click()
Dim SiteSta As dynaset
Dim NbrImageSiteSta As Integer
Dim Vsociete, Vadresse, Vcp As String
Dim chemindataexport_asciiSiteSta As String
chemindataexport_asciiSiteSta = App.Path + "" + "SiteStation.csv"
requete = "select * from T1"
Set SiteSta = gCurrentDB.CreateDynaset(requete)
NbrImageSiteSta = SiteSta.RecordCount
If NbrImageSiteSta > 0 Then
Open chemindataexport_asciiSiteSta For Output As #1
SiteSta.MoveFirst
Do While Not SiteSta.EOF
If SiteSta("Vsociete") <> "" Then Vsociete = CStr(SiteSta("Vsociete"))
If SiteSta("Vadresse") <> "" Then Vadresse = CStr(SiteSta("Vadresse"))
If SiteSta("Vcp") <> "" Then Vcp = CStr(SiteSta("Vcp"))
EmeActive = CStr(-1)
Else
EmeActive = CStr(0)
End If
End If
pymaster
Messages postés74Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention14 août 2006 18 juil. 2006 à 20:52
bonjour
Si tu utilise un recordet alors faut que le reste de ton code suivent aussi
Dim SiteStaAs Recordset
Set SiteSta= CurrentDb.OpenRecordset(query)
if not SiteSta.eof then
Do While Not SiteSta.EOF
If SiteSta!Vsociete <> "" Then Vsociete = CStr(SiteSta!Vsociete))
If SiteSta!Vadresse <> "" Then Vadresse = CStr(SiteSta!Vadresse ))
If SiteSta!Vcp <> "" Then Vcp = CStr(SiteSta("Vcp"))
end while
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 18 juil. 2006 à 21:30
Salut pymaster. Merci pour ta réponse.
J'ai encore du mal avec mon script. J'ai essayé de le simplifié, et ca donne:
Private Sub Command1_Click()
Dim SiteSta As Recordset
Dim NbrImageSiteSta As Integer
Dim Vsociete, Vadresse, Vcp As String
Dim chemindataexport_asciiSiteSta As String
chemindataexport_asciiSiteSta = App.Path + "" + "SiteStation.csv"
requete = "select * from T1"
Set SiteSta = gCurrentDB.OpenRecordset(requete)
NbrImageSiteSta = SiteSta.RecordCount
If NbrImageSiteSta > 0 Then
Open chemindataexport_asciiSiteSta For Output As #1
SiteSta.MoveFirst
Do While Not SiteSta.EOF
If SiteSta("Vsociete") <> "" Then Vsociete = CStr(SiteSta("Vsociete"))
If SiteSta("Vadresse") <> "" Then Vadresse = CStr(SiteSta("Vadresse"))
If SiteSta("Vcp") <> "" Then SitCode = CStr(SiteSta("Vcp"))
Donc, je rappelle à tout hazard, que ma form contient un bouton command1 et un commonDialog qui s'appelle SiteSta. Ma table s'appelle T1 et les trois champs sont T11, T12 et T13 (pour s'implifier)
Donc quand j'éxécute ce script, j'obtiens un msgbox où y a marqué End
Bizarre.
Sinon pymaster, je ne me suis pas trop servi de ton code où t'as utilisé Do While Not SiteSta.EOF car je ne le comprend pas trop.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 18 juil. 2006 à 21:32
Mince excusé moi une erreur de nom de champ dans mon ci-dessus. Je recommance, désolé.
Dim NbrImageSiteSta As Integer
Dim Vsociete, Vadresse, Vcp As String
Dim chemindataexport_asciiSiteSta As String
chemindataexport_asciiSiteSta = App.Path + "" + "SiteStation.csv"
requete = "select * from T1"
Set SiteSta = gCurrentDB.OpenRecordset(requete)
NbrImageSiteSta = SiteSta.RecordCount
If NbrImageSiteSta > 0 Then
Open chemindataexport_asciiSiteSta For Output As #1
SiteSta.MoveFirst
Do While Not SiteSta.EOF
If SiteSta("T11") <> "" Then T11 = CStr(SiteSta("T11"))
If SiteSta("T12") <> "" Then T12 = CStr(SiteSta("T12"))
If SiteSta("T13") <> "" Then T13 = CStr(SiteSta("T13"))
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 19 juil. 2006 à 05:22
ARF, désolé de déranger encore. Si je peux éditer mon message précédent je le fairai, mais j'ai découvert de honteuses fautes de nom pour mes champs même si au final je reçois toujours le msgBox End.
Voici le code avec les noms de champs exact T11, T12, et T13 qui font partie de la table T1.
Private Sub Command1_Click()
Dim SiteSta As Recordset
Dim NbrImageSiteSta As Integer
Dim T11, T12, T13 As String
Dim chemindataexport_asciiSiteSta As String
chemindataexport_asciiSiteSta = App.Path + "" + "SiteStation.csv"
requete = "select T11, T12, T13 from T1"
Set SiteSta = gCurrentDB.OpenRecordset(requete)
NbrImageSiteSta = SiteSta.RecordCount
If NbrImageSiteSta > 0 Then
Open chemindataexport_asciiSiteSta For Output As #1
SiteSta.MoveFirst
Do While Not SiteSta.EOF
If SiteSta("T11") <> "" Then T11 = CStr(SiteSta("T11"))
If SiteSta("T12") <> "" Then T12 = CStr(SiteSta("T12"))
If SiteSta("T13") <> "" Then T13 = CStr(SiteSta("T13"))
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 20 juil. 2006 à 18:14
Ah ok en faite ca marche, c'est parceque le fichier a été créé et donc le msgbox qui disait End voulait tout simplement dire que le fichier a été créer.
Mais la le problème c'est qu'on ne laisse pas à l'utilisateur choisir un nom pour le fichier csv, parceque la le fichier créer automatiquement est SiteStation.csv
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 20 juil. 2006 à 18:56
Quelque chose comme ça te suffit ?
...
Dim chemindataexport_asciiSiteSta As String
Dim nom_fichier as string
nom_fichier = InputBox("Saisissez le nom du fichier à créer", "CHOIX DU NOM DU FICHIER", "SiteStation")
... ici tes contrôles de validité genre if trim(nom_fichier) = "" then ...
chemindataexport_asciiSiteSta = App.Path + "" + nom_fichier & ".csv"
...
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 20 juil. 2006 à 19:18
Si je ne met pas de contrôle de validité quels sont les risques ? Plantage de la bdd ou un truc comme ca ?
Et sinon dernière question pour ce topic:
C'est à propos des requêtes.
J'ai deux tables T1 et T2
Dans la table T1, j'ai les champs T11, T12
Dans la table T2, j'ai les champs T21, T22
J'aimerai savoir comment faire une requete pour prendre le champs T11, T12, T21, T22 ? Je pense qu'il faut utiliser LEFT JOIN mais je n'ai toujours pas compris son fonctionnement.
(Et comme ca lorsque le fichier sera exporté, il contiendra + de champs.)