Accès a une BD avec vb6

minawghodhbane Messages postés 7 Date d'inscription samedi 26 juin 2010 Statut Membre Dernière intervention 23 décembre 2010 - 2 juil. 2010 à 17:48
minawghodhbane Messages postés 7 Date d'inscription samedi 26 juin 2010 Statut Membre Dernière intervention 23 décembre 2010 - 5 juil. 2010 à 11:51
bonjour a tous
c'est ma première participation et g jamais posé une question sur le net
j'ai vraiment besoin de votre aide
je suis en cours de developpement d'une application pour la société ou je travaille
j'utilise vb6.0 et access 2007 pour ma base de donnés relationnelle
g converti la bdd en bdd access 2003 pour pouvoir etablir la connection
la connection s'est bien etabli avec un dataenvironment
g essayé un code que j'ai trouvé dans le projet "gestion des achats" sur ce site pour essayer d'avoir une interface permettant a l'utilisateur de saisir lui meme l'emplacement de sa Bdd a l'aide d'un controle common dialog l'interface fonctionne correctement
voici le code que g placé dans le module :
public sub config_load()

on error goto erreur
open"config.cfg" for input as #1
input #1, chemin_bd
close #1
exit sub

erreur:
open "config.cfg" for output as #2
close#2
open "config.cfg"for append as #2
close #2
resume
end sub

cette proc je l'ai utilisé pour programmer la configuration du chemin d'accès a la bdd

ensuite g créé une forme qui permet de saisir les articles et g placé le code suivant:

private sub form_load()
dim cnx as addb.connection
set cnx=new adodb.connection
cnx.provider = "microsoft.jet.oledb.4.0"
open "config.cfg" for output as #1
chemin_bd1=input(100,#1)
close #1
cnx.connectionstring=cstr(chemin_bd1) l'outil plante a cette ligne et medit :erreur
on error goto annuler erreur 54 bad file mode
cnx.open
annuler:
resume next
end sub

quelqu'un peut m'aider???????

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 juil. 2010 à 01:03
Salut et bienvenu
Quand tu parles de VB6.0, s'agit-il du VB inclus dans Access ou du logiciel VB6 ?
Si c'est celui de Access, c'est du VBA.
Merci de préciser, cela peut changer certaines méthodes.

Pourquoi tout ton code est en minuscule ?
Tu n'as pas collé ton vrai code ?
Bizarre
Du coup, certaines syntaxe ne sont pas correctes comme
dim cnx as addb.connection
-->
dim cnx as adOdb.connection

Pour la lecture d'une ligne entière dans un fichier texte, c'est Line Input #1, laVariable (pas Input)

Exemple de connexion :
cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & leCheminEtNomDeLaBase.MDB

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
minawghodhbane Messages postés 7 Date d'inscription samedi 26 juin 2010 Statut Membre Dernière intervention 23 décembre 2010
5 juil. 2010 à 11:51
BONJOUR JACK et merci de m'avoir repondu

EN FAIT JE TRAVAILLE SUR VB6 LE LOGICIEL, PAR RAPPORT A MON CODE JE T'EXPLIQUE je suis entrain de t'envoyer les mails du pc de mon bureau et l'application que je developpe est sur mon pc portable c pour cela que je suis entrain d'ecrire le code a la main effectivement g fais des erreurs en le tapant
si tu veux dorénavan j te met le code copié de l'editeur directement

mon objectif est de permettre a l'utilisateur de selectionner le chemin d'accès a la BD a l'aide du controle common dialog
ensuite utiliser bien sur ce chemin dans les forms afin de se connecter a la base de donnée a chaque fois quand j'en ai besoin.
ca d'une part d'autre part dans la forme saisie des articles sur laquelle je travaille actuellement g des clés etrangères qui proviennent d'autre tables par exple l'etat de la matière ou le n° du lot de fil utilisé pour la fabrication ect....
bien sur au lieu de dder a l'utilisateur de saisir des codes(je veux dire les clès etrangères) j'ai créé des combobox que j'essaye de remplir avec les enregistrement dans ma base de donnés.
tt d'abord voici le code de saisie du chemin d'accès dans la form configuration:

Private Sub Form_Load()
Close #1
ecran_général.barre_status.Panels(1).Text = "chargement de la feuille configuration..."
Config_Load
Text1.Text = Chemin_Bd
ecran_général.barre_status.Panels(1).Text = "pret"
configuration.Width = 11835
configuration.Height = 1770
End Sub

Private Sub command1_click() 'c la cmnde ok pour valider le chemin d'accès
ecran_général.barre_status.Panels(1).Text = "Enregistrement du nouveau chemin d'accès..."
'Open "config.cfg" For Output As #1
Close #1
Open "config.cfg" For Append As #1
Print #1, Text1.Text
Close #1
ecran_général.barre_status.Panels(1).Text = "pret..."
Unload Me

End Sub
Private Sub command3_Click() ' c la cmnde parcourir
On Error GoTo annuler
CommonDialog1.ShowOpen

Text1.Text = CommonDialog1.FileName
Text1.ToolTipText = Text1.Text
annuler:

End Sub

voici le code de la fonction config_load (que g enregistré dans un module)a laquelle g fait appel dans form_load() de la form configuration :

Public Sub Config_Load()
'Ecran_Général.Barre_Status.Panels(2).Text = "Chargement du fichier CONFIG.CFG..."

On Error GoTo Erreur
'OVERTURE DU FICHIER CONFIG.CFG
Open "Config.cfg" For Input As #1
Input #1, Chemin_Bd
Close #1
Exit Sub

Erreur:
'LE FICHIER CONFIG.CFG N'EXISTE PAS

Open "Config.cfg" For Output As #2
Close #2
Open "config.cfg" For Append As #2
Print #2, "C:"
Close #2
Resume

End Sub

=>> si je compile a ce niveau g l'erreur 55 " file already open "
donc je suis obligé de supprimer les instructions dans la partie erreur dans config_load.

et enfin voici le code dans la form article :

Private Sub Form_Load()
Dim cnx As ADODB.Connection
Set cnx = New ADODB.Connection
cnx.Provider = "microsoft.jet.oledb.4.0"
Dim rs_etat As Recordset

'OVERTURE DU FICHIER CONFIG.CFG

Open "Config.cfg" For Input As #1
longueur = LOF(1)
chemin_bd1 = Input(longueur, #1)
Close #1
cnx.ConnectionString = "provider=microsoft.jet.oledb.4.0;persist security info=false;data dource=" & CStr(chemin_bd1) & ""

On Error GoTo annuler
cnx.Open
rs_etat.Open "select libellé from [etat matiere] order by [code etat], cnx"
nbr = rs_etat.RecordCount
While Not rs_etat.EOF
Combo1.AddItem rs_etat!libellé
rs_etat.MoveNext
Wend
Set rs_etat = Nothing
et la quand j'exécute vb bug et je suis obligé de fermer


j'espère que c clair tu peux m'aider ? je suis dans la merde et je dois montrer la partie réalisé de mon travail a mon patron

merci davance
mouna
0
Rejoignez-nous