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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.