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

Modification en VB de la propriété Datasource de l'objet Connect io

1 réponse
Avatar
Jean-Michel
Bonjour,

Je programme en VB, je suis loin d'être au top en VB Net, j'ai créé un objet Connection avec l'assistant de Visual Studio, le code concernant la connection a été généré par Visual Studio.
Je dois déployer mon prog sur plusieurs postes clients, et il faut que tout les postes pointent sur la même bese de données. Par conséquent Je souhaite pouvoir alimenter la propriété Datasource de l'objet Connection par le contenu d'un fichier INI qui serait installé sur chacun des postes.
J'ai essayé de modifier la propriété Datasource de l'objet connection, mais rien à faire, j'ai toujours un problème de syntaxe, j'ai placé cette modif après le code généré par windows. Comme il est déconseillé d'aller modifier le code généré par Visual Studio, je ne peux donc pas toucher au code généré par windows qui déclare la connection.

Voici mon code (dans mon exemple, j'utilise la variable chemin qui représente le chemin et le fichier de base de données, j'utilise également des _ pour faire suivre à la ligne suivante pour la lisibilité du code) :

#Region " Code généré par le Concepteur Windows Form "

Public Sub New()
MyBase.New()

'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()

'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

Dim chemin As String = "C:\transport\mabase.mdb"

Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
"ocking Mode=0;Data Source=chemin;Jet OLEDB:Engine Typ" & _
"e=4;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=" & _
"False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet " & _
"OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Do" & _
"n't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;" & _
"User ID=Admin;Jet OLEDB:Global Bulk Transactions=1"
End Sub


La valeur qui me pose problème et qui génère une erreur de syntaxe est Data Source=chemin, si je mets le chemin de ma base entre " " ça marche, mais dans mon cas ce n'est pas possible compte tenu que le chemin de la base sera différent en fonction de la localisation du poste client.


Si quelqu'un peut m'aider, Merci d'avance !
--
Jean-Michel

[AGICS] www.agics.com

1 réponse

Avatar
Jean-Michel
Bonjour,

J'ai la réponse à ma question, il faut utiliser les dynamic property de l'objet connection (accessible en cliquant sur propriétés de l'objet connection).

Ensuite on créé une clé qui nous permettra de stocker le chemin de la base.

Jean-Michel

"Jean-Michel" wrote:

Bonjour,

Je programme en VB, je suis loin d'être au top en VB Net, j'ai créé un objet Connection avec l'assistant de Visual Studio, le code concernant la connection a été généré par Visual Studio.
Je dois déployer mon prog sur plusieurs postes clients, et il faut que tout les postes pointent sur la même bese de données. Par conséquent Je souhaite pouvoir alimenter la propriété Datasource de l'objet Connection par le contenu d'un fichier INI qui serait installé sur chacun des postes.
J'ai essayé de modifier la propriété Datasource de l'objet connection, mais rien à faire, j'ai toujours un problème de syntaxe, j'ai placé cette modif après le code généré par windows. Comme il est déconseillé d'aller modifier le code généré par Visual Studio, je ne peux donc pas toucher au code généré par windows qui déclare la connection.

Voici mon code (dans mon exemple, j'utilise la variable chemin qui représente le chemin et le fichier de base de données, j'utilise également des _ pour faire suivre à la ligne suivante pour la lisibilité du code) :

#Region " Code généré par le Concepteur Windows Form "

Public Sub New()
MyBase.New()

'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()

'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

Dim chemin As String = "C:transportmabase.mdb"

Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
"ocking Mode=0;Data Source=chemin;Jet OLEDB:Engine Typ" & _
"e=4;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=" & _
"False;persist security infoúlse;Extended Properties=;Mode=Share Deny None;Jet " & _
"OLEDB:Encrypt Databaseúlse;Jet OLEDB:Create System Databaseúlse;Jet OLEDB:Do" & _
"n't Copy Locale on Compactúlse;Jet OLEDB:Compact Without Replica Repairúlse;" & _
"User ID­min;Jet OLEDB:Global Bulk Transactions=1"
End Sub


La valeur qui me pose problème et qui génère une erreur de syntaxe est Data Source=chemin, si je mets le chemin de ma base entre " " ça marche, mais dans mon cas ce n'est pas possible compte tenu que le chemin de la base sera différent en fonction de la localisation du poste client.


Si quelqu'un peut m'aider, Merci d'avance !
--
Jean-Michel

[AGICS] www.agics.com