Liaison vb Base de données

damdam1 Messages postés 33 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 2 février 2004 - 3 nov. 2003 à 11:36
rabeb83 Messages postés 2 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 août 2005 - 8 août 2005 à 09:28
;) actuellement en stage je doit, pour des raisons pratique lire un fichiers .dat pour le recopier au fur et a mesure de son incrémentation par l'automate dans une ou plusieurs table d'une base de données access comment faire ??
la lecture dans excel en utilisant la vigule comme séparateur me donne un tableau correct les enregistrements dans le fichiers sont sous cette forme :
18802,76.000000,76.000000,1023.775085,890.522461,160.387726,170.145584,165.668015,165.400452,0.000000,0.000000,0.000000,0.000000,15.752380,15.531122,17.189699,48.473202,13.515612,15.635038,13.032000,42.182648,20.755943,22.037926,21.571247,64.257507,0.758930,0.704742,0.796876,0.754357,45.994678,48.795116,47.508289,47.432693,428.595276,428.543793,429.641876,428.926971,15.535685,15.287236,16.958506,47.781425,12.134617,14.267576,11.359599,37.761791,19.713102,20.910843,20.411551,60.901703,0.788085,0.731064,0.830825,0.784565,1.737940,1.997172,1.524937,1.753350,23.655716,25.997746,25.248322,24.967260,14.477929,14.096754,15.829987,44.404671,314.767151,288.890900,333.197723,312.285278,6.843556,5.920488,7.013465,6.583756,121.082344,108.202675,140.141769,123.142601,98.326935,87.867783,113.804459,1,0,0,0.000000,76.000000,76.000000,76.000000,0.000000,0.000000,0.000000,0.000000,3.000000,0.000000,100.000000,20.013157,5.000000,2.000000, xxx
je viens de créer les tables pour acceuillir les données mais je ne sais pas comment les remplir avec les enregistrement ( je voudrais incrémenter la table a chaque nouvel enregistrement dans le fichiers.dat
j'arrive a mettre en forme ce fichier sgrace a excel mais l'utitilisateur final désire effectuer plusieurs requete (bilan jour/mois/année/ par type ...) au secours !!! je n'ai qu'un mois

7 réponses

cs_ludo24 Messages postés 37 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 12 juillet 2007
3 nov. 2003 à 12:24
J'vois pas trop ou est le probleme. A moins que tu ne saches pas du tout attaquer des bases via VB. Au fait c bien VB que tu utilises? et non VBA excel??

Perso, j'irais directement lire dans le fichier .dat avec VB sans passer par un fichier Excel. Est-ce vraiment impossible??

Si ce que tu veux c'est spontanément updater la base à chaque fois que le fichier est modifié, ça me parait dur.

Les requetes dont tu parles seront consultées dans ton outil ou dans access directement??

Si c'est dans ton outil, ça te permettrait d'updater la base uniquement lorsque quelqu'un se sert de ton outil, avant chaque affichage de requete par ton outil.
0
damdam1 Messages postés 33 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 2 février 2004
3 nov. 2003 à 12:56
peut tu m'expliquer plus en détail comment lire directement dans le fichier.dat et comment attaquer la base via VB je débute

;)
0
cs_ludo24 Messages postés 37 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 12 juillet 2007
3 nov. 2003 à 14:19
C un peu long à expliquer mais tu peux trouver plein d'exemples de codes à ce sujet.

Pour lire un fichier texte/dat, je me souviens que tu utilises la fonction "open" ... "as input"

et ensuite tu lis le fichier ligne par ligne grace à la fonction
"line input".
Je ne l'ai jamais utilisé mais je sais qu'il y une autre fonction "input #" (si mes souvenirs st bons) qui te permet d'affecter des variables en fonction de ce qui figure sur une ligne de ton fichier texte et séparé par une virgule. Ca pourrait t'intéresser.

Tu trouveras largement ces infos dans l'aide de VB. Fais une recherche sur "Line input".

Ensuite il te faudra attaquer les bases de données. En ADO ou DAO. ADO est mieux parce que plus récent et c'est pas bcp plus compliqué que le DAO.

En fait, tu devras (en ADO):
1) déclarer une base
2) déclarer un recordset (ie: table/requete)
3) ouvrir une connection à la base
4) ouvrir ton recordset
5) faire tes opération (lecture de data/écriture de data/ajout de data/...)

Une fois que t'as compris comment faire, c'est simple.

Commence par la lecture de fichier dat.
0
xavallais Messages postés 15 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 26 janvier 2010
3 nov. 2003 à 16:54
Je ne comprends pas vraiment comment doit fonctionner ton appli. mais je pense pouvoir te donner les bases pour les accès Access et les lectures de fichiers textes ...

####################
A] Pour ce qui est d'Access
####################

Dans ces exemples ta base de donnée access s'appelle "DBAccess.mdb"
Elle a une table qui s'appelle "T_Recup"

Cette table a les propriétée suivante :
-NumRecup en NumAuto (l'identifiant)
-Libellé en texte
-Valeur en numérique

1-Déclarations
===========
' Connexion
Global Cnx As ADODB.Connection

' Tables
Global rsTable1 As ADODB.Recordset
Global rsTable2 As ADODB.Recordset
...

'Variables globales
Global DataBaseName as String

2 - Connexion à Access
================

21.Etablir la connexion
--------------------------
Public Sub ConnexionDB()

DataBaseName = "C:\MonProjet\DBAccess.mdb"

Set Cnx = New Connection

Cnx.Provider = "Microsoft.jet.OLEDB.4.0"
Cnx.ConnectionString = "Data source=" & DataBaseName
Cnx.Open
End Sub

22.Fermer une connexion
-----------------------------
Sub Fin_ConnexionDB()
Cnx.Close
Set Cnx = Nothing
End Sub

3-Créer un enregistrement dans Access
================================

'Appel du module de connexion si ce n'est pas déjà fait ailleurs dans ton prog
ConnexionDB()

' préparation à l'ajout d'enregistrement
Set rsTable1 = New Recordset
rsTable1.CursorType = adOpenKeyset
rsTable1.LockType = adLockOptimistic
rsTable1.Open "T_Recup", Cnx, , , adCmdTable
rsTable1.AddNew

'remplir les zones

rsTable1.Fields("Libellé") = "TonLibelle"
rsTable1.Fields("Valeur") = TaValeur


'Création de l'enregistrement
rsTable1.Update

'Fermeture de la table
rsTable1.Close
Set rsTable1 = Nothing

'Appel du module de fin de connexion ...
Fin_ConnexionDB()

4-Modifier un enregistrement dans Access
====================================
Dim SQL_Recup as string
Dim Numero as long

'ici on veut modifier l'enregistrement dont le numéro est 401
Numero = 401

'Appel du module de connexion si ce n'est pas déjà fait ailleurs dans ton prog
ConnexionDB()

' préparation à l'ajout d'enregistrement
Set rsTable1 = New Recordset
rsTable1.CursorType = adOpenKeyset
rsTable1.LockType = adLockOptimisticSQL_Recup "SELECT *FROM T_Recup WHERE NumRecup " & Numero & ";"
rsTable1.Open SQL_Recup, Cnx, adOpenDynamic


If Not rsTable1.EOF Then
'remplir les zones
rsTable1.Fields("Libellé") = "TonLibelle"
rsTable1.Fields("Valeur") = TaValeur

'Création de l'enregistrement
rsTable1.Update

End If

'Fermeture de la table
rsTable1.Close
Set rsTable1 = Nothing

'Appel du module de fin de connexion ...
Fin_ConnexionDB()

#########################
B]Pour ce qui est des fichiers textes
#########################

1-Lecture d'un fichier texte
-------------------------------

Dim strFichierTxt as String
Dim strLigne as String

strFichierTxt = "C:\MonProjet\MonFichierTexte.txt"

NumLibre = FreeFile
Open strFichierTxt For Input As #NumLibre
If Not EOF(NumLibre) Then
'
Do While Not EOF(NumLibre)
' lire la ligne du fichier texte
Line Input #NumLibre, strLigne
'
....
'
Loop
Else
'...
End If
'
Close #NumLibre 'fermer le fichier en input

2-Ecriture d'un fichier texte
-------------------------------

Dim strNewFile as String
Dim strNewLine as String

strNewFile = App.Path + "\NouveauFichierTexte.txt"
NumLibre2 = FreeFile
Open strNewFile For Output As #NumLibre2

strNewLine = "Ton baratin ..."

'Ecrire une ligne
Print #NumLibre2, strNewLine

Close #NumLibre2 'fermer le fichier en outputstrNewLine

En espérant que ça te permette de bien avancer dans ton projet.
0

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

Posez votre question
lezardjet Messages postés 77 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 9 mai 2006
24 févr. 2004 à 12:52
terrible ce code !!!!!
mériteré une source!!!
0
xavallais Messages postés 15 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 26 janvier 2010
22 avril 2004 à 14:34
J'ai oublié de préciser une chose dans mon message du 03/11/03, on doit avoir les références suivantes dans VB (Menu Projet/References):

_ Visual Basic for application
_ Visual Basic runtime object and procedure
_ Visual Basic object and procedure
_ OLE automation
_ Microsoft Active X Data object 2.0 library
_ Microsoft DAO 3.51 object library

En espérant que ça aidera ceux qui bloquent dessus...
0
rabeb83 Messages postés 2 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 août 2005
8 août 2005 à 09:28
salut j'ai besoin d'aide concernant la suppression des enregistrements à partir d'une base de format access,je veux supprimer un enregistrement que je selectionne à partir de l'interface que j'ai construit en vb,j'ai réussit de faire une suppression grace à la méthode "Delete" mais elle supprime l'enregistrement actuel qu'elle trouve dans la base et nonb pas celui que je veux,svp aidez moi avec un code et merci
0
Rejoignez-nous