Problème Bizarre =(

Résolu
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010 - 17 nov. 2004 à 09:51
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 - 1 mai 2005 à 13:30
Salut tout le monde j'ai une base de données Access 2000 et une application VB 6.0 qui gère les configs des pc de la base via un treeview (style Aida 32 pour ceux qui connaissent). J'ai un formulaire dans ma base qui permet l'import des données d'un fichier .csv dans la table "Table Import". Je voulais savoir si cela était possible d'intégrer le code du formulaire dans VB 6.0. Voici le code VBA qui s'exécute dans Access.
Option Explicit
Option Compare Database

Private Sub cmdImporter_Click()
    Dim SpecificationName As String, TableName As String, FileName As String, Libellé As String
    SpecificationName = "SpecImportAida"
    TableName = "TableImport"
    FileName = Me.txtFichier.Value
    Libellé = txtLibellé.Value
    Call DoCmd.RunSQL("DELETE * FROM " & TableName & " WHERE Libellé = '" & Libellé & "'")
    Call DoCmd.TransferText(, SpecificationName, TableName, FileName)
    Call DoCmd.RunSQL("UPDATE " & TableName & " SET Libellé = '" & Libellé & "' WHERE Libellé IS NULL")
End Sub


Dans VB 6.0 je souhaite faire cela tel qu'il suit.
J'ai une Textbox "txtPc" dans laquelle on saisira le nom du pc qu'on veut attribuer aux données que l'on va impoter et un bouton "btnImport" qui exécutera justement le formulaire Access.

Est-ce possible ?? Merci de vos réponses..

_______________________
4L!@$ >>>>

10 réponses

alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 17:31
Bon j'ai trouvé jte file la source au cas où. Tu l'adaptera a ton projet,elle sert a utilisée des fonctions de Access en Vb comme le Docmd , etc...
Private Sub cmdImporter_Click()
        Dim AppAccess As New Access.Application
        Dim SpecificationName As String, TableName As String, FileName As String, Libellé As String
        If Trim(txtPc.Text) = vbNullString Then
                MsgBox "Veuillez saisir un libellé de pc", vbInformation, "Information"
                txtPc.SetFocus
        End If
        If Trim(txtChemin.Text) = vbNullString Then
                MsgBox "Veuillez saisir un fichier .csv", vbInformation, "Information"
                btnChemin.SetFocus
        Else
                SpecificationName = "SpecImportAida"
                TableName = "TableImport"
                FileName = txtChemin.Text
                Libellé = txtPc.Text
                AppAccess.OpenCurrentDatabase "Z:\Projet AIDA\Données\access.mdb"
                Call AppAccess.DoCmd.RunSQL("DELETE * FROM " & TableName & " WHERE Libellé = '" & Libellé & "'")
                Call AppAccess.DoCmd.TransferText(, SpecificationName, TableName, FileName)
                Call AppAccess.DoCmd.RunSQL("UPDATE " & TableName & " SET Libellé = '" & Libellé & "' WHERE Libellé IS NULL")
                AppAccess.CloseCurrentDatabase
                AppAccess.Quit acQuitSaveNone
                Set AppAccess = Nothing
        End If
End Sub


Voila en espérant que ca te servira... :)
_______________________
4L!@$ >>>>
3
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 10:15
J'ai oublié une précision, dans ma feuille en vb 6.0 j'ai aussi une autre textbox "txtChemin" dans laquelle on récupère le chemin du fichier grâce au commanddialog voilà..

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 13:43
c'est pas trés clair ...tu veux exporter un fichier .CSV vers une Base Access ???

SI OUI
t'as combien de champs dans ton CSV....séparer par quoi ?
Quel est la structure de ta Base de donnée et les type des Champs ??

Pour Info il y a combien de Ligne Environ il y a dans ton CSV ??

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 14:17
J'exporte un fichier CSV vers Access donc OUI :)

J'ai plusieurs champs en tout 6 (Page, Device, Group, ItemId, Item, Value. Chaque champs est dans une colonne
Dans mon CSV j'ai +65000 ligne lol
Grace au formulaire j'en récupère 2357 car certains enregistrement ne sont pas utiles.
*- La structure de ma base:

TABLE :

TableImport: cette table stock mon csv grâce à l'import d'un formulaire

CHAMPS :

Libellé : texte
Page : texte
Group :texte
Item : texte
Value : mémo

FORMULAIRE :

Import Fichier Aida 32 : dans ce formulaire je saisi le chemin du fichier CSV et je lui attribut un nom.

Et donc tu as le code VBA du formulaire ci-dessus
_______________________
4L!@$ >>>>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 14:24
euh j'ai reregardé le CSV fait 2400 lignes ché po pkoi g di +65000 ala chui pas bien moi :)

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 14:41
Pour Parcourir un Fichier CSV du debut à la Fin en recupérant le Premier Champ

Open "C:\MonFichier.csv" For Input As #1
Do Until EOF(1)
Line Input #1, ligne
Pos= Instr(1,Ligne,",") ' Remplace dans cette Ligne le , par ton Separateur de champ.
Page=Mid(Ligne, 1, Pos - 1)
Loop
Close #1

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 14:57
Ya pas moyen d'appelé de formulaire via VB 6.0 ??

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 15:16
t'appel koi un formulaire ??

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
17 nov. 2004 à 15:22
Parce je sais si t'as vu mais dans le code VBA il y a "Docmd" qui est propre a Access donc enf ait ce qu'il faudrait c'est que je puisse appelé un module Access en VB 6.0.. tu vois ce que je veux dire?Ca allègera le code et mon boulot non pas que je suis feignant simplement un souci d'optimisation...

_______________________
4L!@$ >>>>
0
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
1 mai 2005 à 13:30
Je cherche à développer un programme utilisant les fichiers CSV des différents PC du réseau de ma boîte et générés par AIDA.

Ton projet m'intéresse donc au plus grand point, serait-il possible de bénéficier de tes sources ?

Programmix
0
Rejoignez-nous