TELA DE ORCAMENTO

DAVID.SP 08/06/2005 16:19:31
#87797
Agora quando eu coloco o addnew ele apresenta o erro abaixo:

Run-time error "3075"

Syntax error (missing operator) in query expression 'NumeroOrcamento='

Será que é pq ele naum encontrou nenhum registro???
USUARIO.EXCLUIDOS 08/06/2005 17:31:27
#87822
agora fiquei boiando, se você esta utilizando uma consulta, porque você esta dando o addnew??
é melhor postar sua rotina para ver qual é o erro, tanto da abertura, quanto a do addnew.
USUARIO.EXCLUIDOS 08/06/2005 17:33:05
#87823
retificando, poste:
rotina da consulta
rotina do addnew
outra coisa, qual o formato de dados no campo numeroorcamento????
DAVID.SP 09/06/2005 03:26:42
#87901
Desculpa amigão, acho que não fui muito claro:

Eu preciso cadastrar orçamentos de serviços e gravar em banco de dados, só que o problema é que não estou conseguindo fazer com que o dbgrid fique em branco, por ser um novo orçamento. Ao clicar no botão INSERIR, ele aparece uma tela sobre essa do orçamento, onde o cliente digita a Descrição, Quantidade e Valor e ao clicar no OK, o que foi digitado tem que aparecer no dbgrid que esta na primeira tela e asssim vai.

MEU PROBLEMA:
Não estou conseguindo trazer um dbgrid limpo ao entrar na tela de orçamento para poder cadastrar a descrição. A propriedade do campo NumeroOrcamento é Auto Preenchimento.

Espero que tenha conseguido explicar com mais nitidez.

Obrigado pela força.
USUARIO.EXCLUIDOS 09/06/2005 08:08:21
#87914
bom, como não manjo de dbgrid vou ficar devendo, porém não poderia aparecer o erro que você destacou, pois ele refere - se a uma consulta e não a um addnew, poste o código do botão inserir para ver se encontro o que esta errado.
DAVID.SP 09/06/2005 13:23:02
#88000
Ok Wiliam,

Apesar que esse erro não aparece quando vou acrescentar a Descriçao do serviço e assim que abro a tela de Orçamento.
Será que você ou alguém conhece algum método mais simples para fazer isso, pq na parte de inclusão acho que não será tão complicado, o meu maior problema é ele abrir uma nova tela com um orçamento novo e com o dbgrid limpo, acredito q para acrescentar os orçamentos não será tão complicado.

A minha idéia inicial era fazer uma consulta (deve ser esse o erro), onde ele deverá procurar os registros do novo orçamento e claro, não vai encontrar dai o dbgrid ficará em branco.

Vou colocar abaixo o código onde ele faz isto, se alguém conhecer um método mais fácil, ficarei agradecido:

Dim sql As String

sql = "SELECT Descricao FROM Orcamento WHERE NumeroOrcamento =" & txtorcamento.Text

data1.RecordSource = sql
data1.Refresh

Obrigado à  todos pela força,
ALEXANDRE.SANTO 09/06/2005 17:43:52
#88104
Davi vc disse que a minha instrucao deu erro.......mas aquilo q fiz foi apenas uma sintax de como usar a instrucao.........na verdade naum está errada ...a naum ser q o campo da tabela fosse tipo texto mais blz......

agora achu q entendi o que fazer.........na hora que abrir um novo orcamento vc gostaria q a grid estive vazia e quando adicionasse itens fosse preenchendo-a automaticamente neh. bom minha opiniao seria assim......

toda vez que fazer um novo orcamento gere um codigo q naum tenha na sua tabela ex: CodigoOrcamento........e abra a tabela.

sql = "SELECT * FROM Orcamento WHERE CodigoOrcamento =" & CodOrça
data1.RecordSource = sql
data1.Refresh

Fazendo isso a instrucao naum vae trazer nenhum registro é claro pq esse codigo naum foi cadastrado ainda com isso a grid ficara vazia!!!
Agora no caso dos Itens o certo era vc ter um campo CodigoOrcamento e CodigoItens........pq na hora que vc adicionar um item vc podia usar esta instrucao

sql = "SELECT * FROM Orcamento WHERE CodigoOrcamento =" & CodOrça & " AND CodigoItens= " & CodiItens
data1.RecordSource = sql
data1.Refresh

Ou seja vc teria que fazer um relacionamento na sua tabela..Assim na grid ira ficar somente os itens deste orçamento!!

USUARIO.EXCLUIDOS 09/06/2005 17:54:04
#88108
david, o pensamento do alexandre esta correto e o seu tambem esta, o que esta errado é a sua consulta, você colocou assim:
sql = "SELECT Descricao FROM Orcamento WHERE NumeroOrcamento =" & txtorcamento.Text

ou seja selecione apenas o campo descricao da tabela orcamento onde numeroorcament = a sua text, e é isso o que esta errado ou você faz como o alexandre indicou
sql = "select * from orcamento where numeroorcamento =" & txtorcamento.text

ou então você faz

sql = "select numeroorcamento from orcamento where numeroorcamento =" & txtorcamento.text

ou seja selecione numeroorcamento da tabela orcamento onde numeroorcamento é igual a text

percebeu o erro??
voce selecionou apenas o campo DESCRICAO, entretanto colocou uma clausula where com o campo NUMEROORCAMENTO.
voce so pode fazer isso quando sua consulta utilizar algo como "select * from tabela" aí sim, pois todos os campos da tabela foram carregados, então é possivel colocar um WHERE com qualquer campo.
DNEVONY 10/06/2005 02:02:02
#88139
coloque assim a sql:

sql = "select numeroorcamento from orcamento where numeroorcamento ='" & txtorcamento.text & "'"

assim ela vai funcionar corretamente e vai trazer o seu dbgrid em branco


qualquer coisa me adiciona no msn que te ajudo se problemas
DAVID.SP 10/06/2005 20:00:59
#88361
Amigos,

Eu mudei minha programação para ver se deste jeito vai dar certo.

Na segunda tela onde digito a Descrição do serviço e tal, jogo para o banco de dados e na primeira tela onde esta o dbgrid, faço com que a relação de serviços vai aparecendo a medida que o cliente digita.. Beleza, mas não está atualizando o dbgrid, já coloquei para atualizar mas não vai. Criei 2 Functions, na tela do dbgrid para atualizar e outra na tela onde digita a descrição para ver se funciona, mas não rolou. Será que alguém poderia me dar uma força, derepente é algo muito idiota que não estou conseguindo ver, vou colocar o código abaixo:

TELA ONDE é DIGITADA A DESCRIÇÃO:

Dim conta_total As Single
conta_total = txtquantidade.Text * txtprunit.Text
txttotal.Text = conta_total
gera_orcamento_button_ok (serve somente para gerar número do orçamento)
cad_orc.Data1.Refresh

Data1.Recordset.Update
Data1.Refresh

cad_orc.atualiza_grid
cad_orc.dbgridorcamento.Refresh

TELA ONDE ESTà O DBGRID

Function atualiza_grid()
Dim sql As String

sql = "select NumeroOrcamento from Orcamento where NumeroOrcamento=" & txtorcamento.Text
Data1.RecordSource = sql
Data1.Refresh
dbgridorcamento.Refresh
End Function


Vocês podem observar que coloquei um Data nas 2 telas, sendo que a tela onde está o dbgrid que é a principal, só deveria puxar os valores do banco, mas não está acontecendo. O que está acontecendo é que digito os dados, mas não aparece nada no dbgrid.

Agradeço a ajuda de todos,
Página 2 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas