Waarden voor een of meer vereiste parameters ontbreken

Status
Niet open voor verdere reacties.

JanVolker

Gebruiker
Lid geworden
15 apr 2012
Berichten
32
Beste helpmij leden.

Ik heb een form met daarin een datagridview en een aantal textbox.

Wanneer ik een id invoer in de textbox (Personeel_IDTextBox) wil ik dat er een sql code wordt uitgevoerd in de datagridview.

Ik heb de volgende code geschreven:

Code:
    Private Sub Personeel_IDTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Personeel_IDTextBox.TextChanged
        If String.IsNullOrEmpty(Personeel_IDTextBox.Text) Then
            MsgBox("test")
        Else

            connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
            connection = New OleDbConnection(connetionString)
            sql = "SELECT * FROM Personeel_Werk WHERE [Personeel ID] ='" & Me.Personeel_IDTextBox.Text & "'"
            Try
                connection.Open()
                oledbAdapter = New OleDbDataAdapter(sql, connection)
                oledbAdapter.Fill(ds)
                Personeel_WerkDataGridView.DataSource = ds.Tables(0)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try

        End If

    End Sub

Maar, wanneer ik dit uitvoeren krijg ik de volgende foutmelding:
System.Data.OleDb.OleDbExpection (0x80040e10): Waarden voor een of meer vereiste parameters ontbreken.
bij
System.Data.OleDbCommand.ExecuteCommandTextErrorHandling(OleD HResult hr)
.....

Echter wordt de code probleemloos uitgevoerd wanneer ik in plaats van Personeel_IDTextBox, VoornaamTextBox of een andere textbox gebruik waar tekst in zit in plaats van een getal.

Wat moet ik veranderen om deze code werkend te krijgen?


Met vriendelijke groet,
Jan Volker
 
verander sql = "SELECT * FROM Personeel_Werk WHERE [Personeel ID] ='" & Me.Personeel_IDTextBox.Text & "'" eens in

sql = "SELECT * FROM Personeel_Werk WHERE [Personeel ID] =" & Me.Personeel_IDTextBox.Text
 
Kijk eens naar deze regel in je code:
Code:
connection = New OleDbConnection(connetionString)

Er staat ConnetionString in plaats van ConnectionString.
In de regel erboven ook en ik kan niet zien of die inderdaad als ConnetionString is gedeclareerd en of je Option Explicit wel aan hebt staan.
Dat zou dan heel goed de oorzaak kunnen zijn.
 
Laatst bewerkt:
Ik heb het aangepast. Ik heb nu:

Code:
Imports System.Data.OleDb


Public Class Form1
    Dim connectionString As String
    Dim connection As OleDbConnection
    Dim oledbAdapter As OleDbDataAdapter
    Dim oledbCmdBuilder As OleDbCommandBuilder
    Dim ds As New DataSet
    Dim changes As DataSet
    Dim i As Integer
    Dim sql As String

    Private Sub Personeels_IDTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Personeels_IDTextBox.TextChanged
        If String.IsNullOrEmpty(Personeels_IDTextBox.Text) Then
            MsgBox("test")
        Else

            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
            connection = New OleDbConnection(connectionString)
            sql = "SELECT * FROM Personeel_Werk WHERE [Personeel ID] =" & Me.Personeels_IDTextBox.Text
            Try

                connection.Open()
                oledbAdapter = New OleDbDataAdapter(sql, connection)
                oledbAdapter.Fill(ds)
                Personeel_WerkDataGridView.DataSource = ds.Tables(0)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try

        End If

    End Sub

Maar ik krijg nog steeds dezelfde foutmelding
 
Heb je hem al in Debug mode gedraaid om te zien op welke regel je die fout krijgt?
 
Ja, er staat dat het fout gaat op regel 44:

Code:
                oledbAdapter.Fill(ds)
 
Doe methode geeft altijd een integer als resultaat die hij zo niet kwijt kan.
Probeer het eens als volgt:

Code:
Dim sts As Integer
sts = oledbAdapter.Fill(ds)
 
Dan doet hij het ook niet. Fout op regel 45:
Code:
                sts = oledbAdapter.Fill(ds)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan