Jump to content

data type mismatch in criteria expression


Inês Rocha

Recommended Posts

ola estou a fazer um programa de gestão de uma loja de bricolage em visual basic no visual studio 2019 e nao estou a conseguir quando o funcionário procure um id de um produto com uma ComboBox e ele preencha os outros campos como nome categoria subcategoria.... dá-me um erro "data type mismatch in criteria expression" abaixo mando o código e estou a utilizar o Access com base de dados.

Imports System.Data
Imports System.Data.OleDb
Public Class Form1

    Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click
        Me.WindowState = FormWindowState.Minimized
    End Sub

    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        End
    End Sub

    Private Sub btn_sair_Click(sender As Object, e As EventArgs) Handles btn_sair.Click
        'Me.Hide()
        'Login.Show()
    End Sub

    Private Sub btn_regis_Click(sender As Object, e As EventArgs) Handles btn_regis.Click
        'adminregis.Show()
        'Me.Hide()

    End Sub

    Private Sub btn_func_Click(sender As Object, e As EventArgs) Handles btn_func.Click
        'adminfunc.Show()
        'Me.Hide()

    End Sub

    Private Sub PPreenchaComboBox()
        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim slq As String = "SELECT ID_Artigo FROM Artigos"
                Dim cmd As OleDbCommand = New OleDbCommand(slq, con)
                Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)

                txt_ID.DisplayMember = "ID_Artigo"
                txt_ID.DataSource = dt

            Catch ex As Exception
            Finally
                con.Close()
            End Try
        End Using
    End Sub

    Private Sub adminart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        PPreenchaComboBox()
    End Sub

    Private Sub PLerDados()
        Dim dr As OleDbDataReader
        Using con As OleDbConnection = GetConnection()
            Try
                con.Open()
                Dim sql As String = "SELECT Nome_Artigo, Stock_Artigo, Preco_Artigo, ID_Categoria, ID_Sub_Categoria FROM Artigos Where ID_Artigo='" & txt_ID.Text & "'"
                Dim cmd As OleDbCommand = New OleDbCommand(sql, con)

                dr = cmd.ExecuteReader(CommandBehavior.SingleRow)
                If dr.HasRows Then
                    dr.Read()
                    txt_nome.Text = dr.Item("Nome_Artigo")
                    txt_Stock.Text = dr.Item("Stock_Artigo")
                    txt_preco.Text = dr.Item("Preco_Artigo")
                    txt_C.Text = dr.Item("ID_Categoria")
                    txt_SC.Text = dr.Item("ID_Sub_Categoria")

                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                con.Close()
            End Try
        End Using
    End Sub

    Private Sub txt_ID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles txt_ID.SelectedIndexChanged
        PLerDados()
    End Sub
End Class
 

Edited by Inês Rocha
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.