INSERT INTO TEXT DINAMICO
No meu form eu tenho um botão onde eu insiro mais textbox dinamicos. Quando carrego um doccumento suponhamos de 02 items, gera duas linhas de ttextbox com esse botão eu vou inserir mais uma linha abaixo. Quando eu gero essa linha, eu mudo o tag desses textbox para diferenciar dos primeiros, isso eu faço para usar o UPDATE junto com o INSERT INTO, porque? Bem, uma linha eu estou alterando e outra estou inserindo, correto? Veja a imagem abaixo:
Nela tem 03 linhas, a terceira é a qual vou fazer o INSERT INTO, o codigo é esse:
Private Sub InsereItem()
strSQL = [Ô][Ô]
Dim X As Integer
For X = 1 To Linha
For i = 1 To Me.Controls.Count - 1
If Me.Controls(i).Tag = [Ô]TT[Ô] Then
strSQL = [Ô]INSERT INTO Movimento([ID],[Posicao],[Quant],[Disp],[Ô]
strSQL = strSQL & [Ô][Desc],[Origem],[Destino],[OF],[Req],[Obra],[Fabrica],[Lm])[Ô]
strSQL = strSQL & [Ô]VALUES([Ô]
strSQL = strSQL & [Ô][ô][Ô] & Me.Controls([Ô]A[Ô] & X) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]B[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Me.Controls([Ô]C[Ô] & X) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]D[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComApostrofo(Me.Controls([Ô]E[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]F[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]G[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & IIf(UCase(Mid(Me.Controls([Ô]H[Ô] & X), 1, 2)) = [Ô]OF[Ô], [Ô][ô][Ô] + Me.Controls([Ô]H[Ô] & X) + [Ô][ô],[ô][ô],[Ô], [Ô][ô][ô],[ô][Ô] + Me.Controls([Ô]H[Ô] & X) + [Ô][ô],[Ô])
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]I[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]J[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & NR_Copia & [Ô][ô])[Ô]
Banco1.BeginTrans
Banco1.Execute (strSQL)
Banco1.CommitTrans
End If
Next
Next
End Sub
Essa terceira linha em um outro codigo eu mudei o TAG dos controles, no caso vou inserir somente ela, só que quando gravo repete varias linhas. Pergunto, estou identificando os controles corretamente?
Nela tem 03 linhas, a terceira é a qual vou fazer o INSERT INTO, o codigo é esse:
Private Sub InsereItem()
strSQL = [Ô][Ô]
Dim X As Integer
For X = 1 To Linha
For i = 1 To Me.Controls.Count - 1
If Me.Controls(i).Tag = [Ô]TT[Ô] Then
strSQL = [Ô]INSERT INTO Movimento([ID],[Posicao],[Quant],[Disp],[Ô]
strSQL = strSQL & [Ô][Desc],[Origem],[Destino],[OF],[Req],[Obra],[Fabrica],[Lm])[Ô]
strSQL = strSQL & [Ô]VALUES([Ô]
strSQL = strSQL & [Ô][ô][Ô] & Me.Controls([Ô]A[Ô] & X) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]B[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Me.Controls([Ô]C[Ô] & X) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]D[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComApostrofo(Me.Controls([Ô]E[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]F[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]G[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & IIf(UCase(Mid(Me.Controls([Ô]H[Ô] & X), 1, 2)) = [Ô]OF[Ô], [Ô][ô][Ô] + Me.Controls([Ô]H[Ô] & X) + [Ô][ô],[ô][ô],[Ô], [Ô][ô][ô],[ô][Ô] + Me.Controls([Ô]H[Ô] & X) + [Ô][ô],[Ô])
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]I[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(Me.Controls([Ô]J[Ô] & X)) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & NR_Copia & [Ô][ô])[Ô]
Banco1.BeginTrans
Banco1.Execute (strSQL)
Banco1.CommitTrans
End If
Next
Next
End Sub
Essa terceira linha em um outro codigo eu mudei o TAG dos controles, no caso vou inserir somente ela, só que quando gravo repete varias linhas. Pergunto, estou identificando os controles corretamente?
Desculpe se eu estiver errado, mas não é mais fácil dar um DELETE e depois usar INSERT? Assim, você não precisa validar se o registro já existe ou não. Sem UPDATE.
Tópico encerrado , respostas não são mais permitidas