Ir para conteúdo

POWERED BY:

Arquivado

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

Irenko

insert into

Recommended Posts

Amigos, porque o INSERT INTO não aceita gravar o caracter hífem(-)?

 

se o TxtOF.text esta preenchido com o texto (45869), o codigo automaticamente altera para (OF-45869) gravando o campo corretamente.

 

Se o TxtOF.text esta com (" ") Vazio, o codigo altera o mesmo para (-), estando o TxtOF.text com o caracter (-) o INSERT INTO não grava o mesmo. Alguem sabe me explicar por que?

If ComboDisp.text = "00
3" Then
TxtOF.text = "-"
End If

If TxtOF.text = "" Then
TxtOF.text = "-"

ElseIf TxtOF.text = Right$(TxtOF.text, 5) Then
TxtOF.text = "OF" & "-" & Mid(TxtOF.text, 1, 5)
end if

Set OP = New ADODB.Command
	If MsgBox("Confirma a inclusão desse item na LM?", vbYesNo + vbQuestion) = vbYes Then
	   With OP
			.ActiveConnection = Banco1
			'.CommandText = "INSERT INTO Movimento (Disp,Origem,Destino,[OF],Obra,Fabrica,Posicao,Quant,[Desc],[Req],CSobra,[ID],[L
M]) values ('" & ComboDisp.text & "','" & ComboOrigem.text & "','" & ComboDestino & "','" & TxtOF.text & "','" & TxtObra.text & "','" & TxtFab.text & "','" & TxtPos.text & "','" & TxtQT.text & "','" & ComApostrofo(TxtDesc.text) & "','" & TxtReq.text & "','" & TxtSobra.text & "','" & Lb_ID.Caption & "','" & NrLista & "')"
			.CommandText = "INSERT INTO Movimento (Disp,Origem,Destino,[OF],Obra,Fabrica,Posicao,Quant,[Desc],[Req],CSobra,[ID],[L
M]) values ('" & ComboDisp.text & "','" & ComboOrigem.text & "','" & ComboDestino & "','" & TxtOF.text & "','" & TxtObra.text & "','" & TxtFab.text & "','" & TxtPos.text & "','" & TxtQT.text & "','" & ComApostrofo(TxtDesc.text) & "','" & TxtReq.text & "','" & TxtSobra.text & "','" & Lb_ID.Caption & "','" & NrLista & "')"

			.Execute
	   End With

Compartilhar este post


Link para o post
Compartilhar em outros sites

A instrução entende que é um operador matematico.

Aqui também deu erro, mas somente quando não coloquei aspas simples, com as aspas simples funcionou normal.

 

'" & TxtOF.text & "'
Aqui você colocou, não era pra dar erro.

 

Retornou qual erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não da erro, somente não grava.

 

Fiz varios testes:

 

Se digito "0-0" ou "O-O", ele retorna no TxtOF.text (OF-0-0) ou (OF-O-O). Se digito "XXX", ele retorna "OF-XXX", se digito "-" ele retorna "OF--", para esse ultimo exemplo o "-" foi digitado quando insiro o mesmo automaticamente conforme abaixo, não grava:

 

If TxtOF.text = "" Then

TxtOF.text = "-"

 

ao inves disso se eu inclui um item anteriormente corretamente, ou seja, (OF-45689), não sei como o codigo esta pegando esse (OF-45689) e gravando e substituindo pelo "-", dá pra endender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves disso se eu inclui um item anteriormente corretamente, ou seja, (OF-45689), não sei como o codigo esta pegando esse (OF-45689) e gravando e substituindo pelo "-"

Essa parte não entendi.

 

Estranho não ta gravando.

Verifica se ta passando no .Execute

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você não entendeu é o seguinte: em um determinado documento tenho varios itens, suponhamos 05 itens. Pois bem vou inserir o 6º item, o 5º item para o TxtOF.text (vide código) foi digitado OF-45692 e gravado sem problemas. Quando vou gravar o 6º com o TxtOF.text contendo (-), ao inves de gravar o (-) ele pega OF-45692 do 5º item, não sei como mas acontece isso.

 

Outra, existe maneira de fazer instrução reconhecer o (-) como string(texto) e não como operador matemático? Para Aspas simples ocorreu o mesmo problema, cujo o SQL atribui para definir campos caracter. Resolvi com a função abaixo:

 

Private Function ComApostrofo(STR As String, Optional lngPos As Long = 1) As String

 

Dim intPosStr As Integer 'variavel que recebe a posicao do caracter da string

 

intPosStr = InStr(lngPos, STR, "'")

If intPosStr > 0 Then

ComApostrofo = Left(STR, intPosStr) & "'" & Mid(STR, intPosStr + 1)

STR = ComApostrofo

End If

 

If InStr(intPosStr + 2, STR, "'") > 0 Then

STR = ComApostrofo(STR, intPosStr + 2)

End If

 

ComApostrofo = STR

End Function

 

Teria como adapta-la para o (-)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se quando você vai adiciona o 6° item, a caixa de texto muda. Você ta adionando por ela, é o unico lugar que pode ta o erro.

Uma pergunta, você limpou as txt depois que gravou ?

Pq se não limpou:

If TxtOF.text = "" Then
TxtOF.text = "-"

ElseIf TxtOF.text = Right$(TxtOF.text, 5) Then
TxtOF.text = "OF" & "-" & Mid(TxtOF.text, 1, 5)
end if
Ele não entra no primeiro IF, e assim não poe o "-". tendeu ?

 

Teria como adapta-la para o (-)?

Acho que você não precisa, olha:
'" & TxtOF.text & "'
Ja tem aspas simples ali.

 

Flw

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.