INSERT INTO
Olá pessoal blz. Tenho a seguinte rotina para inclusão no banco Access, usando Insert Into. Mais na tabela contém dois campo como DATA/HORA, e quando esses campos não são preenchidos na gravar nada. Alguém poderia mim ajuda com essa dúvida.
[th]
Cabecalho | [/th]
[txt-color=#0000f0]Private Sub [/txt-color]cmdAdDep_Click() [txt-color=#0000f0]On Error Resume Next[/txt-color][txt-color=#0000f0]Dim [/txt-color]sSQL [txt-color=#0000f0]As String[/txt-color]AltDep = False If Trim(atxtLançamento) = [Ô][Ô] Or Trim(cboEspecificaçao) = [Ô][Ô] Then MsgBox [Ô]Preencha os campos para inclusão do equipamento.[Ô], vbExclamation, [Ô]Campo vazio[Ô] Exit Sub End If sSQL = [Ô]INSERT INTO Tblacessorio(lancamento,especificacao,saida,conclusao, codAcess) [Ô] sSQL = sSQL & [Ô]VALUES (#[Ô] & Format(atxtLançamento.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#, [ô][Ô] sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô], #[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#, [ô][Ô] sSQL = sSQL & cboConclusao.Text & [Ô][ô], [Ô] & atxtCodigo.Text & [Ô])[Ô] con.BeginTrans con.Execute sSQL con.CommitTrans MsgBox [Ô]Dados incluÃdo com sucesso![Ô] Call LimparDependente Call ListarDependente(CLng(atxtCodigo)) Exit Sub erro: con.RollbackTrans MsgBox [Ô]Ocorreu um erro ao incluir equipamento.[Ô], vbExclamation, [Ô]Erro[Ô] [txt-color=#0000f0]End Sub[/txt-color] |
Faça isso ao concatenar a SQL:
IIf((Trim(atxtLançamento.Text)) = [Ô][Ô]), [Ô]null[Ô],[Ô]#[Ô] & Format(atxtLançamento.Text, [Ô]mm/dd/yyyy[Ô] & [Ô]#[Ô])
OLà LLAIA, ALTEREI MAIS AGORA NÃO ESTà MAIS INCLUINDO NO BANCO, SERà QUE TEM ALGO ERRADO NA ROTINA
[th]
Cabecalho | [/th]
sSQL = [Ô]INSERT INTO Tblacessorio(lancamento,especificacao,saida,conclusao, codAcess) [Ô] sSQL = sSQL & [Ô]VALUES([Ô] sSQL = sSQL & IIf(atxtLançamento.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô]#[Ô] & Format(atxtLançamento.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#,[Ô]) sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô], #[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#, [ô][Ô] sSQL = sSQL & IIf(atxtSaida.Text = [Ô][Ô], [Ô]Null)[Ô], [Ô]#[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#)[Ô]) sSQL = sSQL & cboConclusao.Text & [Ô][ô], [Ô] & atxtCodigo.Text & [Ô])[Ô] |
ACRESCENTEI UMA LINHA
sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô], #[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#, [ô][Ô]
sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô], #[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#, [ô][Ô]
SEGUE ESTRUTURA DA TABELA PARA MELHOR ENTENDIMENTO.
ABRAÇOS
ABRAÇOS
Tenta assim:
sSQL = [Ô]INSERT INTO Tblacessorio(lancamento,especificacao,saida,conclusao, codAcess) [Ô]
sSQL = sSQL & [Ô]VALUES([Ô]
sSQL = sSQL & IIf(atxtLançamento.Text = [Ô][Ô], Null, [Ô]#[Ô] & Format(atxtLançamento.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[ô][Ô]
sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô],[Ô]
sSQL = sSQL & IIf(atxtSaida.Text = [Ô][Ô], Null, [Ô]#[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[ô][Ô]
sSQL = sSQL & cboConclusao.Text & [Ô][ô],[Ô] & atxtCodigo.Text & [Ô])[Ô]
BOM DIA ROBIU, ALTEREI CONFORME SEU EXEMPLO. AINDA CONTINUA COM O MESMO PROBLEMA, SE EU DEIXAR QUALQUER UM DOS CAMPOS COM PREENCHIMENTO NULO COM FORMATO DATA/HORA NÃO GRAVAR NA BASE DE DADOS.
ABRAÇOS
ABRAÇOS
cara, joga a string numa MsgBox e veja como ela está sendo montada.
E Se preencher os campos grava? Que erro está ocorrendo?
Vamos tentar substituir o[txt-color=#e80000] Null por Empty[/txt-color].
Vamos tentar substituir o[txt-color=#e80000] Null por Empty[/txt-color].
sSQL = [Ô]INSERT INTO Tblacessorio(lancamento,especificacao,saida,conclusao, codAcess) [Ô]
sSQL = sSQL & [Ô]VALUES([Ô]
sSQL = sSQL & IIf(atxtLançamento.Text = [Ô][Ô], Empty, [Ô]#[Ô] & Format(atxtLançamento.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[ô][Ô]
sSQL = sSQL & cboEspecificaçao.Text & [Ô][ô],[Ô]
sSQL = sSQL & IIf(atxtSaida.Text = [Ô][Ô], Empty, [Ô]#[Ô] & Format(atxtSaida.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô],[ô][Ô]
sSQL = sSQL & cboConclusao.Text & [Ô][ô],[Ô] & atxtCodigo.Text & [Ô])[Ô]
SEGUE TELA COM ERRO APRESENTADO
Tópico encerrado , respostas não são mais permitidas