Visual Basic et ADO

Little_Dev Messages postés 36 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 4 mars 2008 - 23 sept. 2004 à 14:09
Little_Dev Messages postés 36 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 4 mars 2008 - 23 sept. 2004 à 17:21
Bonjour,

Je n'arrive pas créer une connection en VB à une base de données Acces,je me suis documenté avec l'aide visual basic et sur vbfrance, mais bon je galére voici ma source:

Private Sub Form_Load()
Dim My_Cnx1 As ADODB.Connection
Dim My_Cmd1 As ADODB.Command
Dim My_Prm1 As Parameter
Dim My_Rs As ADODB.Recordset

Set My_Cnx1 = New ADODB.Connection

With My_Cnx1
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionTimeout = 30
.CursorLocation = adUseServer
.IsolationLevel = adXactChaos
.Mode = adModeShareExclusive
.Properties("Jet OLEDB:System database") = "C:\Help_Desk.mdb"
.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\Help_Desk.mdb ; User Id=Admin; Password="
End With

Set My_Cmd1 = New ADODB.Command
With My_Cmd1
.ActiveConnection = My_Cnx1
.CommandType = adCmdStoredProc
.CommandText = "Proc_Sel_Nom_Process"
End With

Set My_Prm1 = New Parameter
With My_Prm1
.Direction = adParamInput
.Type = adChar
.Name = "Str_Nom_Process"
End With

My_Cmd1.Parameters.Append My_Prm1
My_Cmd1("Str_Nom_Process").Value = "test1"

Set My_Rs = My_Cmd1.Execute

Set DataGrid2.DataSource = My_Rs

End Sub

A partir de ça j'aimerai effectuer un DELETE,UPDATE et SELECT à l'aide d'une procedure stocké dans acces dont voici la syntaxe :

PARAMETERS Str_Nom_Process Text ( 20 );
SELECT *
FROM Process
WHERE Nom_Process=Str_Nom_Process;

Cette requete est enregistrée sous "Proc_Sel_Nom_Process"

Lors de l'execution du code il me retourne un msg que voici:

Erreur d'éxécution '-2147467259 (80004005)':

could not open table 'MSysAccount' in the workgroup information file.

Si on peut m'aider ou me fournir un lien vers un didacticiel pour m'aider dans mon developpement.

Je vous remercie d'avance pour votre aide.

2 réponses

SebOfBorg Messages postés 94 Date d'inscription dimanche 29 septembre 2002 Statut Membre Dernière intervention 26 août 2009
23 sept. 2004 à 17:09
Bonjour,

Ne crois tu pas qu'il y a un peu de redondance ?

.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionTimeout = 30
.CursorLocation = adUseServer
.IsolationLevel = adXactChaos
.Mode = adModeShareExclusive
.Properties("Jet OLEDB:System database") = "C:\Help_Desk.mdb"
.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\Help_Desk.mdb ; User Id=Admin; Password="

As tu essayé cela ?

Dim My_Cnx1 As New ADODB.Connection
Dim My_Cmd1 As New ADODB.Command
Dim My_Prm1 As Parameter
Dim My_Rs As ADODB.Recordset

My_Cnx1.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\Help_Desk.mdb ; User Id=Admin; Password="

My_Cnx1.My_Cmd1.CommandText = "Proc_Sel_Nom_Process"
My_Cnx1.My_Cmd1.execute

Bon Courage
SebOfBorg
0
Little_Dev Messages postés 36 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 4 mars 2008
23 sept. 2004 à 17:21
Je te remercie de ton aide mais cela ne fonctionne pas.

Il bug au moment de l'execution du code suivant:

My_Cnx1.My_Cmd1.CommandText = "Proc_Sel_Nom_Process"

Et me renvoie le message d'erreur, j'avoue ne pas trop comprendre.

erreur d'exécution '3001':
Arguments are of the wrong type, are out of acceptable range, or are in conflict one another.

Bon je sait que je suis pas un crack en DB mais la ADO, me rend fou.

Encore merci de ton aide SebOfBorg 8-)
0
Rejoignez-nous