Bonjour,

Je vous explique mon problème d'une seconde a l'autre mon programme ne fonctionne plus. Le code plante au moment ou il rencontre une variable publique stockée dans un module.

Lorsque je regarde le details de l'erreur il me dit qu'il lui est impossible de convertir un type integer en string alors que ma variable de depart est un string justement. Il me met le meme message d'erreur pour toute variable d'un autre type.

Je vous affiche mon code en esperant que vous arriverez a trouver la solution !

Merci.

Le code :

Le module

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
33
34
35
36
37
38
39
40
41
42
43
 
 
Imports System.Data
Imports System.Data.OleDb
 
Module Module1
 
    Public ObjetConnection As OleDbConnection
    Public ObjetCommand As OleDbCommand
    Public ObjetDataAdapter As OleDbDataAdapter
    Public ObjetDataSet As New DataSet() 'Attention au New
    Public strSql As String
    Public ObjetDataTable As DataTable
    Public ObjetDataRow As DataRow
 
    Public RowNumber As Integer    'Numéro de l'enregistrement courant
    Public strConn As String
    Public ObjetCommandBuilder As OleDbCommandBuilder
 
    Public User_id, NbJrTot, NbRTT As Integer
    Public Nom, Prenom As String
    Public LVI As ListViewItem
    Public NouvDateRTT As String = ""
    Public NouvDateConges As String = ""
    Public NouvDateConges1 As String = ""
    Public NouvNbConges As Integer = 0
    Public Modification As Boolean = False
    Public Conges_id As Integer = ""
 
    Public Sub Deconnexion()
 
 
        Module1.ObjetConnection = Nothing
        Module1.ObjetCommand = Nothing
        Module1.ObjetDataAdapter = Nothing
        Module1.ObjetDataTable = Nothing
        Module1.ObjetDataRow = Nothing
        Module1.ObjetDataSet.Clear()
 
 
    End Sub
 
End Module
La form :

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
 
Private Sub Bt_Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Ok.Click
 
        If Me.Txt_Login.Text = "" Then
 
            MessageBox.Show("Veuillez saisir un nom d'utilisateur", "Utilisateur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub
        End If
 
        If Me.Txt_Login.Text <> "" And Me.Txt_Password.Text <> "" Then
 
            Module1.strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Eric\Conges\Conges1.accdb;"
            Module1.strSql = "SELECT * FROM SALARIES WHERE Login_Salarie='" & Me.Txt_Login.Text & "' AND Password_Salarie='" & Me.Txt_Password.Text & "'"
 
 
            Module1.ObjetConnection = New OleDbConnection()
            Module1.ObjetConnection.ConnectionString = strConn
            Module1.ObjetConnection.Open()
            Module1.ObjetCommand = New OleDbCommand(strSql)
            Module1.ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            Module1.ObjetCommand.Connection() = ObjetConnection
 
            Module1.ObjetDataAdapter.Fill(ObjetDataSet, "SALARIES")
            Module1.ObjetDataTable = ObjetDataSet.Tables("SALARIES")
 
 
            Module1.RowNumber = 0
le programme s'arrete a la variable Module1.strConn

le message d'erreur exact est le suivant :

"La conversion de la chaîne "" en type 'Integer' n'est pas valide."}