• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

umaiafilho

Cadastro

26 mensagens neste tópico

estou desenvolvendo este Cadastro em vb.08

combobox = pesquisar
label = nome
combobox = sexo
label = casado - radiobutton = sim - radiobutton = não
label = preferencia - checkbox = revista - checkbox = tv
button = incluir
butgon = sair
button = alterar
button = limpar
button = deletar

alguem pode me dar uma ajuda em montar o código

abs

Umbelino Maia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

montei dessa forma, mas, está com uns erros!

Imports System.Data
Imports System.Data.OleDb

Public Class Form1
   
#Region "botao sair"

    Private Sub Btn_sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_sair.Click
        Me.Close()
    End Sub
#End Region

#Region "função zera_reg"
    Sub limpar()
        Txt_nome.Text = ""
        Cmb_sexo.Text = ""
        Txt_anonasc.Text = ""
        Cmb_Pesquisar.Text = ""
        Rdb_nao.Checked = False
        Rdb_sim.Checked = False
        CheckBoxrevista.Checked = False
        CheckBoxtv.Checked = False



    End Sub
#End Region
#Region "botão limpar"

    Private Sub Btn_limpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_limpar.Click
        limpar()
    End Sub
#End Region

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'CadastroDataSet2.pessoal' table. You can move, or remove it, as needed.
        Me.PessoalTableAdapter.Fill(Me.CadastroDataSet2.pessoal)


    End Sub
#Region "Pesquisar"


    Private Sub Cmb_Pesquisar_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_Pesquisar.SelectedIndexChanged

        'String para conectar o banco.
        Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Projetos VB\banco_combo_2\banco_combo_2\cadastro.mdb;Persist Security Info=False"

        'criar objeto para comunicação com o banco'
        Dim objcom As New OleDb.OleDbConnection(constring)

        'criar  data reader'
        Dim rs2 As OleDbDataReader

        'abre o banco de dados'
        objcom.Open()

        'comando que será executado o banco aberto'
        Dim slsql As String = "SELECT nome,sexo,casado,idade, preferencia FROM pessoal WHERE codigo = " & Cmb_Pesquisar.SelectedValue

        'montar o comando para submeter ao banco
        Dim cm As New OleDb.OleDbCommand(slsql, objcom)

        'Tipo de comando montado.
        cm.CommandType = CommandType.Text

        'executar o comando e armazenar os registros
        rs2 = cm.ExecuteReader

        'lendo os dados na memoria principal"
        rs2.Read()

        'atribuir valores para os campos que foram achados"
        'NOME
        Txt_nome.Text = rs2("nome")

        'SEXO
        If rs2("sexo") = 0 Then

            Cmb_sexo.Text = "feminino"
        Else
            Cmb_sexo.Text = "masculino"
        End If

        'CASADO
        If rs2("casado") = 0 Then
            Rdb_nao.Checked = True
            Rdb_sim.Checked = False
        Else
            Rdb_nao.Checked = False
            Rdb_sim.Checked = True
        End If

        'IDADE
        Dim pesq_idade As Integer = "2009" - rs2("idade")
        Txt_anonasc.Text = pesq_idade
        'PREFERENCIA

        If rs2("preferencia") = 13 Then
            CheckBoxrevista.Checked = 0
            CheckBoxtv.Checked = 0
        End If

        If rs2("preferencia") = 14 Then
            CheckBoxrevista.Checked = 0
            CheckBoxtv.Checked = 1
        End If

        If rs2("preferencia") = 23 Then
            CheckBoxrevista.Checked = 1
            CheckBoxtv.Checked = 0
        End If

        If rs2("preferencia") = 24 Then
            CheckBoxrevista.Checked = 1
            CheckBoxtv.Checked = 1
        End If

        'fechar conexão com datareader'
        rs2.Close()

        'fechar conexão com o banco"
        objcom.Close()

    End Sub
#End Region

#Region "Excluir"

    Private Sub Btn_excluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_excluir.Click

        'String para conectar o banco.
        Dim cons As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Projetos VB\banco_combo_2\banco_combo_2\cadastro.mdb;Persist Security Info=False"

        'Objeto para comunicar com o banco.
        Dim dbcon2 As New OleDb.OleDbConnection(cons)

        'Abrir o banco.
        dbcon2.Open()

        'Comando de excluir.
        Dim sql As String = "DELETE FROM pessoal WHERE codigo = " & Cmb_Pesquisar.SelectedValue

        'Monta o comando.
        Dim comando As New OleDb.OleDbCommand(sql, dbcon2)

        'Tipo de comando.
        comando.CommandType = CommandType.Text

        'Executa o comando sem quetionamento
        comando.ExecuteNonQuery()

        'Fecha o banco.
        dbcon2.Close()

        'Zera os campos.
        limpar()

    End Sub
#End Region
#Region "Incluir"

    Private Sub Btn_Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Incluir.Click

        'String para conectar o banco.
        Dim conecstring2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Projetos VB\banco_combo_2\banco_combo_2\cadastro.mdb;Persist Security Info=False"

        'Manipulando informações a serem inseridas.
        'IDADE
        Dim inc_idade As Integer = "2009" - Txt_anonasc.Text

        'CASADO
        Dim inc_casado As Integer
        If Rdb_nao.Checked = True Then
            inc_casado = 0
        Else
            inc_casado = 1
        End If

        'PREFERENCIA
        Dim inc_preferencia As Integer
        Dim inc_revista, inc_tv As String

        If CheckBoxrevista.CheckState = CheckState.Checked = 0 Then
            inc_revista = "1"
        Else
            inc_revista = "2"
        End If
        If CheckBoxtv.CheckState = CheckState.Checked = 0 Then
            inc_tv = "3"
        Else
            inc_tv = "4"
        End If
        inc_preferencia = inc_revista + inc_tv

        'SEXO
        Dim inc_sexo As Integer
        If Cmb_sexo.Text = "m" Then
            inc_sexo = 1
        Else
            inc_sexo = 0
        End If

        'Objeto para comunicar com o banco.
        Dim objcom2 As New OleDb.OleDbConnection(conecstring2)

        'Abrir o banco.
        objcom2.Open()

        'Comando de incluir.
        Dim incsql As String = "INSERT INTO pessoal (nome,sexo,casado,idade, preferencia) VALUES('" & Txt_nome.Text & "','" & inc_sexo & "','" & inc_casado & "','" & inc_idade & "','" & inc_preferencia & "')"

        'Monta o comando.
        Dim cmdinc As New OleDb.OleDbCommand(incsql, objcom2)

        'Tipo de comando.
        cmdinc.CommandType = CommandType.Text

        'Executa o comando sem quetionamento.
        cmdinc.ExecuteNonQuery()

        'Fecha o banco.
        objcom2.Close()

        'Zera os campos.
        limpar()

    End Sub
#End Region
#Region "Alterar"

    Private Sub Btn_alterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_alterar.Click
        'Manipulando informações a serem inseridas.
        'IDADE
        Dim inc_idade As Integer = "2009" - Txt_anonasc.Text
        'CASADO
        Dim inc_casado As Integer
        If Rdb_nao.Checked = True Then
            inc_casado = 0
        Else
            inc_casado = 1
        End If

        'PREFERENCIA
        Dim inc_preferencia As Integer
        Dim inc_revista, inc_tv As String

        If CheckBoxrevista.CheckState = CheckState.Checked = 0 Then
            inc_revista = "1"
        Else
            inc_revista = "2"
        End If
        If CheckBoxtv.CheckState = CheckState.Checked = 0 Then
            inc_tv = "3"
        Else
            inc_tv = "4"
        End If
        inc_preferencia = inc_revista + inc_tv

        'SEXO
        Dim inc_sexo As Integer
        If Cmb_sexo.Text = "masculino" Then
            inc_sexo = 1
        Else
            inc_sexo = 0
        End If

        'String para conectar o banco.
        Dim cons As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Projetos VB\banco_combo_2\banco_combo_2\cadastro.mdb;Persist Security Info=False"

        'Objeto para comunicar com o banco.
        Dim dbcon2 As New OleDb.OleDbConnection(cons)

        'Abrir o banco.
        dbcon2.Open()

        'Comando de alterar.
        Dim sql As String = "UPDATE pessoal SET NOME = ('" & Txt_nome.Text & "'), SEXO = ('" & Cmb_sexo.SelectedValue & "'),IDADE = ('" & Txt_anonasc.Text & "'), CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' WHERE = codigo"


        'Monta o comando.
        Dim comando As New OleDb.OleDbCommand(sql, dbcon2)

        'Tipo de comando.
        comando.CommandType = CommandType.Text

        'Executa o comando sem quetionamento.
        comando.ExecuteNonQuery()

        'Fecha o banco.
        dbcon2.Close()

        'Zera os campos.
        limpar()


    End Sub
#End Region

    Dim strCasado As String
    Private Sub Rdb_sim_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rdb_sim.CheckedChanged
        'Declarando as variaveis sim e nao
        

    End Sub

    Private Sub Rdb_nao_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rdb_nao.CheckedChanged
        'Declarando as variaveis sim e nao
        


    End Sub

    Private Sub CheckBoxrevista_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBoxrevista.CheckedChanged
        'Declarando as variaveis revista e tv
        
    End Sub

    Private Sub CheckBoxtv_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBoxtv.CheckedChanged

        'Declarando as variaveis revista e tv
        

    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E quais são os erros?

Duvido que alguém fique feliz em fazer de debugger num bloco de código tão grande :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá Ribeiro!

Único erro está no botão "alterar"

at

Umbelino Maia

#Region "Alterar"

    Private Sub Btn_alterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_alterar.Click
        'Manipulando informações a serem inseridas.
        'IDADE
        Dim inc_idade As Integer = "2009" - Txt_anonasc.Text
        'CASADO
        Dim inc_casado As Integer
        If Rdb_nao.Checked = True Then
            inc_casado = 0
        Else
            inc_casado = 1
        End If

        'PREFERENCIA
        Dim inc_preferencia As Integer
        Dim inc_revista, inc_tv As String

        If CheckBoxrevista.CheckState = CheckState.Checked = 0 Then
            inc_revista = "1"
        Else
            inc_revista = "2"
        End If
        If CheckBoxtv.CheckState = CheckState.Checked = 0 Then
            inc_tv = "3"
        Else
            inc_tv = "4"
        End If
        inc_preferencia = inc_revista + inc_tv

        'SEXO
        Dim inc_sexo As Integer
        If Cmb_sexo.Text = "masculino" Then
            inc_sexo = 1
        Else
            inc_sexo = 0
        End If

        'String para conectar o banco.
        Dim cons As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Projetos VB\banco_combo_2\banco_combo_2\cadastro.mdb;Persist Security Info=False"

        'Objeto para comunicar com o banco.
        Dim dbcon2 As New OleDb.OleDbConnection(cons)

        'Abrir o banco.
        dbcon2.Open()

        'Comando de alterar.
        Dim sql As String = "UPDATE pessoal SET NOME = ('" & Txt_nome.Text & "'), SEXO = ('" & Cmb_sexo.SelectedValue & "'),IDADE = ('" & Txt_anonasc.Text & "'), CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' WHERE = codigo"


        'Monta o comando.
        Dim comando As New OleDb.OleDbCommand(sql, dbcon2)

        'Tipo de comando.
        comando.CommandType = CommandType.Text

        'Executa o comando sem quetionamento.
        comando.ExecuteNonQuery()

        'Fecha o banco.
        dbcon2.Close()

        'Zera os campos.
        limpar()


    End Sub
#End Region

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Único erro está no botão "alterar"

Mas podia indicar o erro que lhe aparece para ser mais fácil de ajudar. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Erro na sintaxe " UPDATE pessoal"

at

Umbelino Maia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta parte está um bocado esquisita, não falta nada antes do igual? Porque isto assim não funciona.

WHERE = codigo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas podes dizer a linha do erro... porque estar a olhar para esse codigo... nao inspira muito :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta parte está um bocado esquisita, não falta nada antes do igual? Porque isto assim não funciona.

WHERE = codigo

pois está no maximo isto:

    Dim sql As String = "UPDATE pessoal SET NOME = ('" & Txt_nome.Text & "'), SEXO = ('" & Cmb_sexo.SelectedValue & "'),IDADE = ('" & Txt_anonasc.Text & "'), CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' WHERE CODIGO = ('" & Txt_codigo.Text & "')"

Algo assim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas podes dizer a linha do erro... porque estar a olhar para esse codigo... nao inspira muito :)

penso que seja na instrução SQL

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta tirar as " ' " nos campos que sao numericos, porque isso é so para strings

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta tirar as " ' " nos campos que sao numericos, porque isso é so para strings

Errado, funciona na mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tou a fazer um projecto tambem que engloba isso e nos campos numericos tive de tirar as " ' " senao nao funcionava.. mas sao os campos numericos da base de dados

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho, porque em bases de dados mysql funciona bem. Mas com Access realmente nunca experimentei.

Também não lhe custa nada fazer a experiência.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois era em access

mas tambem que tente a ver se da....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Minha tabela:

codigo – nome – sexo – casado – idade – preferência

sendo que:

sexo (m) ou (f)

casado ( sim ) ou (não )

idade = entra ano de nascimento e na tabela, lê os anos

preferência ( revista),(TV) ou dois.

Att

Umbelino Maia

'Comando de alterar.

       

Dim sql As String = "UPDATE pessoal SET NOME = ('" & Txt_nome.Text & "'), SEXO = ('" & Cmb_sexo.SelectedValue & "'),IDADE = ('" & Txt_anonasc.Text & "'), CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' WHERE = codigo"'Comando de alterar.
        Dim sql As String = "UPDATE pessoal SET NOME = ('" & Txt_nome.Text & "'), SEXO = ('" & Cmb_sexo.SelectedValue & "'),IDADE = ('" & Txt_anonasc.Text & "'), CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' WHERE = codigo"

edit: adicionado geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vamos lá ver se entende uma coisa, no comando sql das duas uma: Ou indica qual ou quais os registos afectados, por exemplo:

Where codigo= 7

Ou não diz nada e todos os registos são alterados.

Assim como está, é óbvio que obtêm um erro de sintaxe.

Por isso naquele where o codigo tem que ser igual a alguma coisa, que neste caso é o codigo do registo que está a editar, que tem que o obter de alguma maneira.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tambem pode ser aqui o erro:

CASADO = ('" & Rdb_sim.Checked & "'), PREFERENCIA = " & CheckBoxtv.Checked & "' 

pois o campo é string e ele esta a por o radiobutton ou checkbox seleccionados

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sem o Option Strict vai ser avaliado como "False" ou "True".

Mas sim, nestas situações o Checked deveria levar o .ToString no final.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

teria que criar strings para:

casado

idade

e preferencia

e indicar nos values, em Update

Att

Umbelino Maia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta o .ToString. Não precisas de criar mais variáveis.

Atenta à resposta do anolsi pois pode lá estar a resolução para o teu problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Conseguir alterar minha tabela usando a sintaxe abaixo ,mas deu um erro, como tenho que usar uma pesquisa, e alterar o item mostrado, com esta sintaxe, altera toda a tabela, queria somente o item pesquisado

At

Umbelino Maia

'Comando de alterar.

        Dim sql As String = "update pessoal set nome ='" & Txt_nome.Text & "'", sexo = "'" & Cmb_sexo.Text & "'", casado = "'" & IIf(rdCasado.Checked = True, "Sim", "Não") & "'", idade = "'" & Txt_anonasc.Text & "'", preferencia = "'" & IIf(CheckBoxrevista.Checked = True, "Revista", "TV") & "' Where codigo = " & Cmb_Pesquisar.SelectedValue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

atao mete so assim:

Dim sql As String = "update pessoal set ItemPesquisado ='" & Txt_item.Text & "'" Where codigo = " & Cmb_Pesquisar.SelectedValue

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpe!

Me expressei errado!

queria alterar  somente o item selecionado da pesquisa

At

Umbelino Maia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora