Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Chaine de connexion à un contrôle Data

6 réponses
Avatar
Twitzig
Bonjour,

J'ai un applicatif qui était initialement prévu pour gérer une base "fixe"
Je dois maintenant demander, à l'ouverture du logiciel, sur quelle base
travailler, et je me heurte au pb suivant:

A l'ouverture d'une forme contenant un contrôle Data, je définis, dans la
procédure form_load, la chaine de connexion.
La connexion se déroule bien sur la base choisie, mais après avoir reçu des
messages liés à des tentatives d'accès à l'ancienne "base fixe" (que j'ai
renommée pour faire mes essais)

Comment faire?

6 réponses

Avatar
Clive Lumb
"Twitzig" a écrit dans le message de
news:
Bonjour,

J'ai un applicatif qui était initialement prévu pour gérer une base "fixe"
Je dois maintenant demander, à l'ouverture du logiciel, sur quelle base
travailler, et je me heurte au pb suivant:

A l'ouverture d'une forme contenant un contrôle Data, je définis, dans la
procédure form_load, la chaine de connexion.
La connexion se déroule bien sur la base choisie, mais après avoir reçu


des
messages liés à des tentatives d'accès à l'ancienne "base fixe" (que j'ai
renommée pour faire mes essais)

Comment faire?



Faire le changement avant le form load.
Par ex.
Dim MyForm as New Nom_de_ton_Form
MyForm.Nom_Controle_Data.ConnexionString="Chemin de la base, type etc."
MyForm.show
Avatar
Twitzig
Merci pour l'idée.

Cependant, lorsque je fais celà, à l'exécution, j'ai un message "erreur
d'exécution 424, un objet est requis"

Je te joins ci-dessous le code
La forme s'appelle gestbat
Le contrôle data (généré par l'assistant "feuille de données") est
datprimaryRS

chaine_connexion = "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" &
chemin_base & ";"

gestbat.datPrimaryRS.ConnectionString = chaine_connexion


"Clive Lumb" a écrit :


"Twitzig" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un applicatif qui était initialement prévu pour gérer une base "fixe"
> Je dois maintenant demander, à l'ouverture du logiciel, sur quelle base
> travailler, et je me heurte au pb suivant:
>
> A l'ouverture d'une forme contenant un contrôle Data, je définis, dans la
> procédure form_load, la chaine de connexion.
> La connexion se déroule bien sur la base choisie, mais après avoir reçu
des
> messages liés à des tentatives d'accès à l'ancienne "base fixe" (que j'ai
> renommée pour faire mes essais)
>
> Comment faire?

Faire le changement avant le form load.
Par ex.
Dim MyForm as New Nom_de_ton_Form
MyForm.Nom_Controle_Data.ConnexionString="Chemin de la base, type etc."
MyForm.show





Avatar
Twitzig
Autant pour moi, ma réponse de tout à l'heure était due à une faute de frappe.

Cependant, après correction, le pb persiste. En effet, dans le code cu
dessous, dès passage sur la ligne
frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion
le programme part en erreur m'indiquant qu'il ne trouve pas la base (en
mentionnant la base configurée initialement)

chemin_base = GetSetting("Rarplus", "parametres", "Base", Default =
"C:Program filesRarplusSuiviamiante.mdb")

chaine_connexion = "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" &
chemin_base & ";"

MsgBox (chaine_connexion)

frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion

frmGestbat.datPrimaryRS.RecordSource = "select Lot,UT ,Libelle_UT
,Batiment,Type_batiment,Emploi_batiment,Proprietaire,Logement_collectif,Categorie_surface,Surface,Ajout_batiment,Retrait_batiment,Avancement,FR_transmise_occupants,Date_maj,[Visite
partielle],Amiante,Observations,Commentaire_repereur,Commentaire_CRA,Commentaire_assistant from SuiviAmiante ORDER BY UT, batiment"

"Clive Lumb" a écrit :


"Twitzig" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un applicatif qui était initialement prévu pour gérer une base "fixe"
> Je dois maintenant demander, à l'ouverture du logiciel, sur quelle base
> travailler, et je me heurte au pb suivant:
>
> A l'ouverture d'une forme contenant un contrôle Data, je définis, dans la
> procédure form_load, la chaine de connexion.
> La connexion se déroule bien sur la base choisie, mais après avoir reçu
des
> messages liés à des tentatives d'accès à l'ancienne "base fixe" (que j'ai
> renommée pour faire mes essais)
>
> Comment faire?

Faire le changement avant le form load.
Par ex.
Dim MyForm as New Nom_de_ton_Form
MyForm.Nom_Controle_Data.ConnexionString="Chemin de la base, type etc."
MyForm.show





Avatar
Clive Lumb
"Twitzig" a écrit dans le message de
news:
Autant pour moi, ma réponse de tout à l'heure était due à une faute de


frappe.

Cependant, après correction, le pb persiste. En effet, dans le code cu
dessous, dès passage sur la ligne
frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion
le programme part en erreur m'indiquant qu'il ne trouve pas la base (en
mentionnant la base configurée initialement)

chemin_base = GetSetting("Rarplus", "parametres", "Base", Default > "C:Program filesRarplusSuiviamiante.mdb")

chaine_connexion = "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" &
chemin_base & ";"

MsgBox (chaine_connexion)

frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion

frmGestbat.datPrimaryRS.RecordSource = "select Lot,UT ,Libelle_UT



,Batiment,Type_batiment,Emploi_batiment,Proprietaire,Logement_collectif,Cate
gorie_surface,Surface,Ajout_batiment,Retrait_batiment,Avancement,FR_transmis
e_occupants,Date_maj,[Visite



partielle],Amiante,Observations,Commentaire_repereur,Commentaire_CRA,Comment
aire_assistant from SuiviAmiante ORDER BY UT, batiment"

"Clive Lumb" a écrit :

>
> "Twitzig" a écrit dans le message de
> news:
> > Bonjour,
> >
> > J'ai un applicatif qui était initialement prévu pour gérer une base


"fixe"
> > Je dois maintenant demander, à l'ouverture du logiciel, sur quelle


base
> > travailler, et je me heurte au pb suivant:
> >
> > A l'ouverture d'une forme contenant un contrôle Data, je définis, dans


la
> > procédure form_load, la chaine de connexion.
> > La connexion se déroule bien sur la base choisie, mais après avoir


reçu
> des
> > messages liés à des tentatives d'accès à l'ancienne "base fixe" (que


j'ai
> > renommée pour faire mes essais)
> >
> > Comment faire?
>
> Faire le changement avant le form load.
> Par ex.
> Dim MyForm as New Nom_de_ton_Form
> MyForm.Nom_Controle_Data.ConnexionString="Chemin de la base, type etc."
> MyForm.show



Et au temps pour moi aussi... car le fait de modifier la chaine de connexion
fait un "load" du form et l'erreur est généré par le sous-système ODBC qui
essaye d'abord de trouver la connection prédéfinie.

Ce que l'on peut faire pour éviter le message d'erreur est de mettre un
copie de la base de données (avec des tables vides) dans le dossier de l'exe
(ou du projet pendant le développement) et de mettre la connexion string
comme ceci (c.a.d. sans le chemin)
"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Suiviamiante.mdb;"
Au moins comme cela il trouve une base de données pour commencer
Avatar
Twitzig
Comme l'on dit "les grands esprits se rencontrent"

L'idée de mettre une base "bidon" est celle que j'étais en train de tester
comme solution de secours.... je pense que celà va être LA solution

Merci quand même



"Clive Lumb" a écrit :


"Twitzig" a écrit dans le message de
news:
> Autant pour moi, ma réponse de tout à l'heure était due à une faute de
frappe.
>
> Cependant, après correction, le pb persiste. En effet, dans le code cu
> dessous, dès passage sur la ligne
> frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion
> le programme part en erreur m'indiquant qu'il ne trouve pas la base (en
> mentionnant la base configurée initialement)
>
> chemin_base = GetSetting("Rarplus", "parametres", "Base", Default > > "C:Program filesRarplusSuiviamiante.mdb")
>
> chaine_connexion = "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" &
> chemin_base & ";"
>
> MsgBox (chaine_connexion)
>
> frmGestbat.datPrimaryRS.ConnectionString = chaine_connexion
>
> frmGestbat.datPrimaryRS.RecordSource = "select Lot,UT ,Libelle_UT
>
,Batiment,Type_batiment,Emploi_batiment,Proprietaire,Logement_collectif,Cate
gorie_surface,Surface,Ajout_batiment,Retrait_batiment,Avancement,FR_transmis
e_occupants,Date_maj,[Visite
>
partielle],Amiante,Observations,Commentaire_repereur,Commentaire_CRA,Comment
aire_assistant from SuiviAmiante ORDER BY UT, batiment"
>
> "Clive Lumb" a écrit :
>
> >
> > "Twitzig" a écrit dans le message de
> > news:
> > > Bonjour,
> > >
> > > J'ai un applicatif qui était initialement prévu pour gérer une base
"fixe"
> > > Je dois maintenant demander, à l'ouverture du logiciel, sur quelle
base
> > > travailler, et je me heurte au pb suivant:
> > >
> > > A l'ouverture d'une forme contenant un contrôle Data, je définis, dans
la
> > > procédure form_load, la chaine de connexion.
> > > La connexion se déroule bien sur la base choisie, mais après avoir
reçu
> > des
> > > messages liés à des tentatives d'accès à l'ancienne "base fixe" (que
j'ai
> > > renommée pour faire mes essais)
> > >
> > > Comment faire?
> >
> > Faire le changement avant le form load.
> > Par ex.
> > Dim MyForm as New Nom_de_ton_Form
> > MyForm.Nom_Controle_Data.ConnexionString="Chemin de la base, type etc."
> > MyForm.show

Et au temps pour moi aussi... car le fait de modifier la chaine de connexion
fait un "load" du form et l'erreur est généré par le sous-système ODBC qui
essaye d'abord de trouver la connection prédéfinie.

Ce que l'on peut faire pour éviter le message d'erreur est de mettre un
copie de la base de données (avec des tables vides) dans le dossier de l'exe
(ou du projet pendant le développement) et de mettre la connexion string
comme ceci (c.a.d. sans le chemin)
"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Suiviamiante.mdb;"
Au moins comme cela il trouve une base de données pour commencer





Avatar
Clive Lumb
Twitzig wrote:
Comme l'on dit "les grands esprits se rencontrent"

L'idée de mettre une base "bidon" est celle que j'étais en train de
tester comme solution de secours.... je pense que celà va être LA
solution

Merci quand même



"Clive Lumb" a écrit :


C'est à cause de ce genre de problème que je suis passé au DataEnvironment
(pour en trouver d'autres!)