Jump to content
edusoft

Não grava uma data vazia no lugar de uma existente

Recommended Posts

edusoft

Bom dia a todos,

Estou com um problema que não consigo resolver a dias. Tenho um projeto em VB 2008 e banco de dados em Access. O que esta ocorrendo que ele não permite apagar e salvar uma data que esteja cadastrada dentro do registro. Esta me obrigando preencher uma data para salvar.

Compactei e salvei o projeto no endereço abaixo:

http://www.4shared.com/account/file/NDsojOE6/projetovb2008_bdaccess.html

Segue imagens

http://0nqwma.bay.livefilestore.com/y1pJpRt7U1P_o-7hUIlgEjB4Wv8eb1S20K4tPOFRSO8q6IpS6UzQENRWWjHUP6MUu4Yboq36ZcLvuscvOMMl3MTxNg7uEhQGQ9X/imgxsd.jpg?psid=1

http://0nqwma.bay.livefilestore.com/y1pUEoUr8AhhpuuOrBd4ok3zAFeZoKh5zCV0Uf0qU3ro3HAWhOqKEn3DfTFAKykbKbVpLcarjCy1ruLAQT7pERfgAXOYH8Oqz1k/imgxsd2.jpg?psid=1

Share this post


Link to post
Share on other sites
Caça

O campo data é de preenchimento obrigatório?

O parâmetro onde a data é passada aceita valores nulos?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
edusoft

Obrigado por responder. O campo não é de preenchimento obrigatório. E aceita valores nulos.

Agora obtive uma resposta só que inglês, olha só:

If the data is in a DataTable then you are setting the fields of a DataRow. Each field is NULL by default so you don't actually have to do anything. To set a field to NULL explicitly, call the SetXYZNull method on the DataRow, where XYZ is the name of your column.

Sabe aonde poderia fazer isso?

Share this post


Link to post
Share on other sites
Caça

O problema está aqui

        If DatanascimentoMaskedTextBox.Text = "  /  /" Then
            DatanascimentoMaskedTextBox.CausesValidation = False
        Else
            DatanascimentoMaskedTextBox.CausesValidation = True
        End If

Aqui estás a obrigar a seleccionar uma data, caso não esteja seleccionada não chega a entrar no "Button1_Click", dai não guardar


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
edusoft

Mais sem isso sou obrigado a preencher uma data, ele não permite eu pular de campo ou até mesmo ir para outro registro, sem digitar uma data valida. Como posso solucionar isso?

Share this post


Link to post
Share on other sites
Caça

Mais sem isso sou obrigado a preencher uma data

Não, sem isso não és obrigado a preencher uma data


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
edusoft

Limpei o código tirei tudo que tinha adicionado. Tudo agora passa pelo TableAdapter. O erro persiste:

Ele permite incluir um registro com a data de nascimento vazia

Mais não permite apagar uma data de nascimento e salvar de um registro já incluido que a data de nascimento esteja preenchida

Exemplo: Vamos supor que cadastrei 2 registros:

Codigo: 1 - Nome: Maria - Salário: 1200 - Data de Nascimento: 18/03/1976

Codigo: 2 - Nome: João - Salário: 3500 - Data de Nascimento:

Se eu quiser apagar a data de nascimento da Maria, o programa não permite.

Public Class exemplo
    Private Sub CadastroBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CadastroBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.CadastroBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.BancodedadosDataSet)
    End Sub

    Private Sub exemplo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.CadastroTableAdapter.Fill(Me.BancodedadosDataSet.cadastro)
    End Sub
End Class

Share this post


Link to post
Share on other sites
bioshock

Queres apagar ou actualizar? Duas coisas diferentes.

E é mesmo o da Maria que ele não permite ou é o do João?

Share this post


Link to post
Share on other sites
edusoft

Quero atualizar o registro da Maria. Essa atualização seria deixar sem a data de nascimento, apagar 18/03/1976 e gravar.

Exemplo: Vamos supor que cadastrei 2 registros:

disso:

Codigo: 1 - Nome: Maria - Salário: 1200 - Data de Nascimento: 18/03/1976

Codigo: 2 - Nome: João - Salário: 3500 - Data de Nascimento:

para isso:

Codigo: 1 - Nome: Maria - Salário: 1200 - Data de Nascimento:

Codigo: 2 - Nome: João - Salário: 3500 - Data de Nascimento:

Share this post


Link to post
Share on other sites
Caça

Ele deixa apagar, não deixa é mudar de controlo enquanto não for uma data válida, o que é bem diferente.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
edusoft

Obrigado por responder. Segue abaixo o CommandText do UpdateCommand

UPDATE `cadastro` SET `codigo` = ?, `nome` = ?, `salario` = ?, `datanascimento` = ? WHERE ((`codigo` = ?) AND ((? = 1 AND `nome` IS NULL) OR (`nome` = ?)) AND ((? = 1 AND `salario` IS NULL) OR (`salario` = ?)) AND ((? = 1 AND `datanascimento` IS NULL) OR (`datanascimento` = ?)))

Share this post


Link to post
Share on other sites
edusoft

Tentei utilizar este método, cheguei a criar um botão e fazer tudo isso. Não funcionou. Como algo tão simples poderia complicar tanto. Um usuario então não pode abrir um cadastro e apagar uma data de nascimento de um registro.

Desculpe por tudo e agradeço a atenção. Alguma idéia do que poderia ser?, para mim a solução esta em alguma propriedade no XSD ou no Parameters (Collection).

Share this post


Link to post
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.