alepe Postado Maio 29, 2005 Denunciar Share Postado Maio 29, 2005 Ao mandar incluir as informações no BD dá erro Run time error '-21472117900(80040e14)':Error de sintaxe na sequencia de caractere na expressão de consulta "",S)' . rs3.Open "insert into relcomanda(codigocomanda,nomedaloja,datadacomanda,vrcomanda,desconto,vrtotaldesc,defeito,impresso) values(codigo,nomeloja,datacom,total,txtdesc.text,txttotdesc.txt,"",S)", cn, adOpenDynamic, adLockOptimistic Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 29, 2005 Denunciar Share Postado Maio 29, 2005 *Não* adianta colocar os nomes das variáveis dentro de uma string, pois eles serão interpretados literalmente. Você tem que colocar do lado de fora, concatenando com &. Exemplo:sql = "INSERT INTO relcomanda (codigocomanda, nomedaloja, datadacomanda, vrcomanda, desconto, vrtotaldesc, defeito, impresso) VALUES (" & codigo & ", '" & nomeloja & "', DateValue('" & datacom & "'), " & total & ", " & txtdesc.txt & ", " & txttotdesc.txt & ", '', " & S cn.Execute sqlNote que você também tem que colocar ' (aspa simples) para campos texto, DateValue() para campos data e para campos numéricos você tem que alterar a vírgula por ponto, se for o caso. Não sei o que é o tal "S" ali no final, e se os tipos dos seus campos são exatamente os que coloquei ali em cima. Por isso, faça o teste e ajuste conforme o caso.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alepe Postado Junho 1, 2005 Autor Denunciar Share Postado Junho 1, 2005 Ok.. Fiz o Insert mas não deu para testar pois o mesmo diz que o Objeto não está aberto ou inválido.Após a impressão ele deve incluir em uma nova tabela os dados que servirão para um relatório sintético.Faço a abertura do rs3 no Form Load declarção no General A variavél S é informando no Bd que a comanda foi impressa.E defeito nesse caso é vazia.' fim de impressão End If Printer.EndDoc rs3.Open "insert into relcomanda(codigocomanda,nomedaloja,datadacomanda,vrcomanda,desconto,vrtotaldesc,defeito,impresso) VALUES ('& codigo & ', '" & nomeloja & "', DateValue('" & datacom & "'), " & total & ", " & txtdesc.Text & ", " & txttotdesc.Text & ", '', " '&S&'"), cn, adOpenDynamic, adLockOptimistic HELP... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 1, 2005 Denunciar Share Postado Junho 1, 2005 Fiz o Insert mas não deu para testar pois o mesmo diz que o Objeto não está aberto ou inválido. Deve ser o "cn" (a conexão). Ela está realmente aberta?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alepe Postado Junho 1, 2005 Autor Denunciar Share Postado Junho 1, 2005 Sim está aberto segue o código...'Objetos para trabalhar com o BD e a tabela, respectivamente Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Dim nomeloja As String Dim datacom As Date Dim total As Double Dim total1 As Double Dim soma As Double Dim soma1 As Double Private Lista As ListItem Private Lista1 As ListItem Private contapagina As Integer Private Sub cmdalteracao_Click() frmaltcomanda.Show vbModal End Sub Private Sub cmdsair_Click() Dim vmensagem As String vmensagem = "Encerrado Processado - Saindo" MsgBox vmensagem, vbInformation, "Encerrado Processo" cn.Close Set cn = Nothing Unload frmcomandas End Sub Private Sub Form_Load() 'Abre o banco de dados 'cn.Close cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=fabrica.mdb" 'Abre a tabela rs.CursorLocation = adUseClient rs1.CursorLocation = adUseClient rs2.CursorLocation = adUseClient rs3.CursorLocation = adUseClient End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 4, 2005 Denunciar Share Postado Junho 4, 2005 Experimente executar a SQL como coloquei lá no exemplo (com cn.Execute) ao invés de abrir um recordset para isso.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alepe Postado Junho 6, 2005 Autor Denunciar Share Postado Junho 6, 2005 Run time error"-2147217900(80040e14)'Numero de valores de consulta e campos de destino não coincidem.Pergunta: Se as consulta vem de datgrid e datalist relacionei elas no value e os campos do bd não estou utilizando o de autonumeração é obrigatório colocar todos ? SQL = "insert into relcomanda(codigocomanda,nomedaloja,datadacomanda,vrcomanda,desconto,vrtotaldesc,defeito,impresso) VALUES ('& lstmostra.SelectedItem & ', '" & nomeloja & "', DateValue('" & datacom & "'), " & total & ", " & txtdesc.Text & ", " & txttotdesc.Text & ", '0 ' , ' 1' " cn.Execute SQL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 7, 2005 Denunciar Share Postado Junho 7, 2005 Pergunta: Se as consulta vem de datgrid e datalist relacionei elas no value e os campos do bd não estou utilizando o de autonumeração é obrigatório colocar todos ? Não, você só coloca os que você vai preencher. Os de autonumeração *não* devem aparecer nessa lista de campos.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alepe
Ao mandar incluir as informações no BD dá erro Run time error '-21472117900(80040e14)':
Error de sintaxe na sequencia de caractere na expressão de consulta "",S)' .
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.