Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ThinkBrunus

maskedbox

Recommended Posts

Boas! Estou interagindo com bd access, utilizando o ADO.o problema surge quando crio um novo dado e coloco uma data na maskedbox, após gravar (adodc1.recordset.update) e navegando aparece-me a mesma data em todos os campos do maskedbox.....reiniciando a aplicação verifico q os dados foram gravados e com sucesso, o problema reside quando é feito um novo registoele fica com a data inserida no mesmo e mostra-o durante a navegeção. alguém me ajuda a encontrar solução?aqui deixo o código para melhor interpretação do problema:Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = "Registo: " & Adodc1.Recordset.AbsolutePosition & " de " & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Form_Load() txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = FalseEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Adodc1.Recordset.AddNew txtNome.Enabled = True txtApelido.Enabled = True MaskEdBox1.Enabled = True txtMorada.Enabled = True txtTel.Enabled = True txtFax.Enabled = True txtEmail.Enabled = True txtObs.Enabled = True MaskEdBox1.Mask = "##/##/####" Case 2 txtNome.Enabled = True txtApelido.Enabled = True MaskEdBox1.Enabled = True txtMorada.Enabled = True txtTel.Enabled = True txtFax.Enabled = True txtEmail.Enabled = True txtObs.Enabled = True Case 3 If MsgBox("Eliminar dados?", vbYesNo + vbDefaultButton2 + vbQuestion, "Eliminar dados?") = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveFirst End If Case 4 Adodc1.Recordset.CancelUpdate txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = False Case 5 Adodc1.Recordset.Update txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = False MaskEdBox1.Refresh End SelectEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas! Estou interagindo com bd access, utilizando o ADO.o problema surge quando crio um novo dado e coloco uma data na maskedbox, após gravar (adodc1.recordset.update) e navegando aparece-me a mesma data em todos os campos do maskedbox.....reiniciando a aplicação verifico q os dados foram gravados e com sucesso, o problema reside quando é feito um novo registoele fica com a data inserida no mesmo e mostra-o durante a navegeção. alguém me ajuda a encontrar solução?aqui deixo o código para melhor interpretação do problema:Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = "Registo: " & Adodc1.Recordset.AbsolutePosition & " de " & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Form_Load() txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = FalseEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Adodc1.Recordset.AddNew txtNome.Enabled = True txtApelido.Enabled = True MaskEdBox1.Enabled = True txtMorada.Enabled = True txtTel.Enabled = True txtFax.Enabled = True txtEmail.Enabled = True txtObs.Enabled = True MaskEdBox1.Mask = "##/##/####" Case 2 txtNome.Enabled = True txtApelido.Enabled = True MaskEdBox1.Enabled = True txtMorada.Enabled = True txtTel.Enabled = True txtFax.Enabled = True txtEmail.Enabled = True txtObs.Enabled = True Case 3 If MsgBox("Eliminar dados?", vbYesNo + vbDefaultButton2 + vbQuestion, "Eliminar dados?") = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveFirst End If Case 4 Adodc1.Recordset.CancelUpdate txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = False Case 5 Adodc1.Recordset.Update txtNome.Enabled = False txtApelido.Enabled = False MaskEdBox1.Enabled = False txtMorada.Enabled = False txtTel.Enabled = False txtFax.Enabled = False txtEmail.Enabled = False txtObs.Enabled = False MaskEdBox1.Refresh End SelectEnd Sub

Cara, maskebox é algo meio chatinho mesmo de trabalhar se não trata-la bem qdo está junto com um banco de dados.Mas faz o seguinte, tire a máscara dela do evento do seu botão, coloque no getfocus.private sub maskedbox1_getfocusmaskedbox1.maks = "##/##/####"end subdepois no evento lostfocus tire esse máscara.private sub maskedbox1_lostfocusmaskedbox1.masj = ""end subEsse problema que está tendo nunca aconteceu para mim, mas pra mim dava muito erro na hora de adicionar novos dados, pq qdo mandava a masked receber vazio ( = "") ele não aceitava, pq tinha a máscara. Ai retirei a máscara no evento lostfocus resolveu.Dá uma tentada, espero que funcione, depois dá um toque se funcionou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentei mas não resolvei o problema....continua a fazer o mesmo!após introduzir a data na mask e depois navegando a data é mesma para todos, mas não na realidade! Ao reiniciar o programa bate tudo certo, na hora de inserir o registo novo é que ele fica maluco

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentei mas não resolvei o problema....continua a fazer o mesmo!após introduzir a data na mask e depois navegando a data é mesma para todos, mas não na realidade! Ao reiniciar o programa bate tudo certo, na hora de inserir o registo novo é que ele fica maluco

Agora que reparei, no seu case 5 (update), para que vocêcolocou aquele refresh em sua maskedbox...Peloque reparei você fez sua conexão ao banco através do objeto adodc né... não costumo trabalhar com ele, faço minhas conexões sempre por código e minhas maskeds funcionam bem. Mas não faz muito sentido ter alguma a ver para estar dando o problema que está...Se tem como me passa seu formulario por e-mail para eu dar uma olhada...Se sim, mande para claudio.rodriguesneto@gmail.comÉ realmente estranho o que está acontecendo, mas as vezes olhando fica mais fácil entender...Abçs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,Tenta colocar a formatação nas propriedades (Mask = "##/##/####"), na hora de mandar limpar o campo tenta ("__/__/____").Qualquer coisa tenta usar o comando replace.Não sei se vai dar certo, mas tenta....Abçs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.