INSERT INTO X CAMPOS NULOS

USUARIO.EXCLUIDOS 19/08/2007 19:14:00
#231585
Pessoal, são três questões neste código vejam:

questão 1: eu fazia meus aplicativos com controle adodc e quando inseria valores em um recordset ele aceitava campos em branco, porém estou modificando um aplicativo para começar a fazer tudo via código e me deparei com uma questão, abaixo está meu código, ele não aceita quando um dos campos está em branco, quais as possíveis soluções?:

Private Sub Cmd_SALVAR_Click()
Dim cnncomando As New ADODB.Command
Dim rs_Pronaf As New ADODB.Recordset
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into projetos " & _
"(cod, data, cpf, nome, projetista, valor, atividade, municipio, porte)values ('" & _
Text_COD.Text & "','" & _
Text_DATA.Text & "','" & _
Text_CPF.Text & "', '" & _
Text_NOME.Text & "','" & _
Combo_PROJ.Text & "','" & _
Text_VALOR.Text & "','" & _
Combo_ATIV.Text & "','" & _
Combo_MUN.Text & "','" & _
Combo_PORTE.Text & "');"

.Execute
End With

Set rs_Pronaf = Nothing
Set cnncommando = Nothing

Dim vOK As Integer
vOK = MsgBox("Projeto salvo com sucesso", vbOKOnly + vbInformation, "Salvar Projeto")


End Sub



questão 2 :é mesmo necessário sempre fechar o command e o recordset ao final da aplicação?

Set rs_Pronaf = Nothing
Set cnncommando = Nothing

questão 3: se quiser inserir num campo da tabela um valor sem referência no form? ou seja, no campo: FASE_PROJETO inserir sempre a string: EM ANÁLISE, pois tentei de todas as formas e não consegui

USUARIO.EXCLUIDOS 19/08/2007 19:22:53
#231587
talvez no seu banco tava com not null pq aqui em ksa aceita normal

agora em questão de fecha as variaveis faça assim

set frmseuform = nothing

fazendo isso vc mata tudo banco, variaveis

e melhor

cria uma variavel, joga o valor nela e grava com ela

lembrando q quando no bd o campo e varchar vc tem q coloca aspas simples

'" & txttal & "'

quando e numero num precisa

" & txttal & "

falo kra axo q e so isso
USUARIO.EXCLUIDOS 19/08/2007 19:37:09
#231588
Cara o melhor a fazer e verificar se os campos estao batendo ...
poste o erro que esta apresentando fica melhor pra gente te ajudar...

pois olhando assim pode ser muitas coisas...

Att,
Marcelo Bressan
USUARIO.EXCLUIDOS 19/08/2007 20:13:50
#231591
Fiz o seguinte teste

fui tirando campo a campo pois vi que alguns aceitava o campo nulo e o único que não aceita campo nulo é o campo: VALOR ele é do tipo(currency), os outros aceitam.

o erro é:

Tipos de dados incompativel na expressão de critério 2147217913(80040e07)
USUARIO.EXCLUIDOS 19/08/2007 23:03:03
#231596
Se vc deseja que aceite nulo basta ir no seu banco de dados alterar o campo Valor para aceitar NULL...

ou vc faz as modificações abaixo para funcionar:

Combo_PROJ.Text & "'," & _
iif (len(Text_VALOR.Text)=0,0,txt_valor.Text) & ",'" & _

OBS.: Se o Text_VALOR.Text não for preenchido (estiver vazio) o codigo acima passa para o banco o valor zero.

FAÇA O TESTE...
USUARIO.EXCLUIDOS 19/08/2007 23:03:27
#231597
kra se eu num me engano e isso mesmo

na sua sql onde no bd for numero vc coloca sem aspas simples

" & txttal & "

agora quando for texto vc coloca aspas simples

'" & txttal & "'

axo q isso resolve

outra coisa tbm e vc faze um if para quando num tive nda, muda para 0 e add como 0


USUARIO.EXCLUIDOS 20/08/2007 09:08:45
#231613

vcs tem q expliacar melhor
nao da para entender
USUARIO.EXCLUIDOS 20/08/2007 21:50:47
#231735
Olá FRAU, cara essa expressão que vc pÃÂ's me parece que realmente funciona, mas no momento tá dando um erro que ainda tÃÂ' tentando concertar, se puder me ajudar, erro:

"erro de sintaxe na sequencia de caracteres"
"0,",",");'.
USUARIO.EXCLUIDOS 21/08/2007 07:49:09
#231765
faz assim

Private Sub Cmd_SALVAR_Click()
Dim cnncomando As New ADODB.Command
Dim rs_Pronaf As New ADODB.Recordset
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into projetos " & _
"(cod, data, cpf, nome, projetista, valor, atividade, municipio, porte)values ('" & _
Text_COD.Text & "','" & _
Text_DATA.Text & "','" & _
Text_CPF.Text & "', '" & _
Text_NOME.Text & "','" & _
Combo_PROJ.Text & "','0" & _
Text_VALOR.Text & "','" & _
Combo_ATIV.Text & "','" & _
Combo_MUN.Text & "','" & _
Combo_PORTE.Text & "');"

.Execute
End With

Set rs_Pronaf = Nothing
Set cnncommando = Nothing

Dim vOK As Integer
vOK = MsgBox("Projeto salvo com sucesso", vbOKOnly + vbInformation, "Salvar Projeto")


End Sub

USUARIO.EXCLUIDOS 21/08/2007 10:58:09
#231830
Citação:

Olá FRAU, cara essa expressão que vc pÃÂ's me parece que realmente funciona, mas no momento tá dando um erro que ainda tÃÂ' tentando concertar, se puder me ajudar, erro:

"erro de sintaxe na sequencia de caracteres"
"0,",",");'.



DÁ IMPRESSÃO QUE VC ESTÁ COLOCANDO O ZERO ENTRE APOSTROFO...OU TEM APOSTROFO A MAIS...faz o seguinte: poste exatamente o codigo fonte desta parte...para ficar + fácil na ajuda.
USUARIO.EXCLUIDOS 21/08/2007 11:07:06
#231833
Bom antes de mais nada acho que não custa nada você dar uma verificada no banco para ajustar os campos que são ou não obrigatórios. Se seu BD for Access, verifique se o campo permite comprimento zero ou não, etc...pois as vezes é um simples problema de propriedades na tabela.
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas