oledb + base access 2007 + requête delete impossible
Bonjour,
Je vous écris aujourd'hui pour un autre problème dont je ne trouve pas la solution.
J'ai un simple projet visual basic.net basé sur framework 4 pour garder une compatibilité avec windows XP pour l'instant encore présent chez certain de mes clients.
Le projet gèrera une petite base access toute simple.
Actuellement je travail autour de la table PSL.
J'ai déjà une fonction GetPSL qui fonctionne impec, et me retourne le / les enregistrement présent dans la base.
J'ai aussi coder une fonction Erase PSL (vide la table entière) qui elle ne fonctionne pas.
Elle s’exécute correctement, mais ne fait pas ce qu'elle est sensé faire.
Voici le code de ma fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
Public Function PI_ErasePsl() As Integer
Try
PI_DBConnect()
Dim q As String = "DELETE FROM PSL"
Dim cmd As New OleDb.OleDbCommand(q, PI_DB_connection)
Dim ret As Integer = cmd.ExecuteNonQuery()
MsgBox(ret)
PI_DBDisconnect()
Return ret
Catch ex As Exception
MsgBox("erreur : " & ex.Message)
Return 1
End Try
End Function |
Je suis débutant en la matière, mais de plus en plus intéressé.
Je ne sais pas si c'est juste, mais il me semble que ExecuteNonQuery() est une méthode ? qui retourne soit -1 en cas d'erreur, soit une valeur positive dépendant du nombre de row affecté.
J'ai trouvé ces informations ici : https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx
le messagebox de ma fonction servant au débug me retourne 1 (j'ai un enregistrement de test dans ma base).
J'ai aussi un autre soucis mineure, je souhaiterais protéger par mot de passe ma base.
Ce n'est pas le coté access qui me pose problème, je pense que c'est simple. Le soucis ce pose du coté code / connexion. J'ose imaginé que elle est peut être déjà posé ailleurs, mais je ne force personne à répondre concernant ce sujet.
Voici le code de ma fonction de connexion à la base :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Public Function PI_DBConnect() As Boolean
Dim funcode As String = "PI.4000.0001.0000"
Try
'build a connection string
PI_DB_connection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; " &
"Data source=PI_4000.accdb;")
'open the connection
PI_DB_connection.Open()
Return False
Catch ex As Exception
MsgBox("Database Error 1:" & ex.Message, vbCritical, "Attention")
PI_AddConsoleItem("Database Error 1", "", "")
End
Return True
End Try
End Function
En espérant une réponse de la part d'un membre de ce forum, je vous remercie d'avance de votre futur réponse. |