Bonjour à tous,
J’ai une application en VB.NET qui utilise une base de données sous Access, je rencontre aléatoirement l’erreursur mes requêtes INSERT, ce qui est étrange c’est qu’avec le même jeu d’essai XLS (car j'importe des données d'un excel vers la BDD), parfois j’arrive à l’insérer intégralement, d’autres fois il tombe en erreur sur la fin du jeu, au milieu ou au début, si encore ca tombait en rade à une requête précise je comprendrais … Mais là je dois avouer sécher.ERROR [HY000] [Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une requête qui peut être mise à jour.
Voici le code type de mes requêtes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Shared Sub inserer(ByVal uneentreprise As entreprise) Try Dim cmd As Odbc.OdbcCommand Dim ctn As Odbc.OdbcConnection = AccesBase.seConnecter cmd = ctn.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = "INSERT INTO Entreprise(IdEntreprise,FormeJuridique,Compte,IdResponsableConseil,ChiffreAffaireHP) VALUES ('" & uneentreprise.IdEntreprise.ToString & "','" & Replace(uneentreprise.FormeJuridique, "'", "''") & "','" & Replace(uneentreprise.CompteEntreprise, "'", "''") & "','" & uneentreprise.IdResponsableConseil & "','" & uneentreprise.ChiffreAffaireHP & "')" cmd.ExecuteNonQuery() AccesBase.seDeconnecter(ctn) Catch ex As Exception Throw ex End Try End Sub
Et le code de connection / déconnection à la base de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Shared Function seConnecter() As Odbc.OdbcConnection Dim ctn As Odbc.OdbcConnection ctn = Nothing Try ctn = New Odbc.OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\")) & "\fichiers\xxx.mdb;UID=;PWD=") ctn.Open() Catch ex As Exception ctn = Nothing Throw ex Finally seConnecter = ctn End Try End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Shared Sub seDeconnecter(ByVal ctn As Odbc.OdbcConnection) Try If Not ctn Is Nothing AndAlso ctn.State = ConnectionState.Open Then ctn.Close() ctn = Nothing End If Catch ex As Exception Throw ex End Try End Sub
J'ai lu qu'il s'agissait peut être d'un problème de droits, mais le problème justement c'est ce problème intervient aléatoirement, à moins que c'est un problème de fermeture / ouverture de base successive, vu que je fais les requêtes les unes à la suite des autres dans la phase d'importation, je ne sais pas trop :/
Avez vous déjà rencontrer ce cas ?
Merci d'avance pour vos lumières !
Partager