VALOR DE UMA INPUTBOX DENTRO DE UM INSERT INTO
Vejam este codigo:
Vejam onde informo para gravar na tabela ARQUIVO os dados da tabela PROJETOS, porém, além destes campos gostaria de por dentro do: INSERT INTO, o outro campo da tabela ARQUIVO, que é o campo CAIXA mas, o valor informado para este campo teria que ser informado pelo usuario por uma inputbox, que viria logo após o ELSE, o problema é quando colocar o campo CAIXA dentro de:
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
onde colocarei a variavel valor da inputbox?
Private Sub Cmd_arquivar_Click()
Dim vA As Integer
vA = MsgBox("Desejar informar o número da caixa em que será arquivado este projeto ?", vbYesNo + vbQuestion, "Arquivar projeto")
If vA = vbYes Then
If TextCOD_PROJETOS = "" Then
Dim vINF As Integer
vINF = MsgBox("Não foi informado nenhum Projeto para arquivamento, verifique.", vbOKOnly + vbCritical, "Arquivar projeto")
Else
Dim cnncomando As New ADODB.Command
Dim rs_arquivo As New ADODB.Recordset
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " select * from arquivo "
Set rs_arquivo = .Execute
End With
With rs_arquivo
rs_arquivo.Filter = " cod = " & TextCOD_PROJETOS.Text
If Not (.BOF And .EOF) Then
Dim vJA_EXISTE_NO_ARQUIVO As Integer
vJA_EXISTE_NO_ARQUIVO = MsgBox("Este projeto já consta na Base de Dados do Arquivo", vbOKOnly + vbCritical, "Arquivar projeto")
Else
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
End With
End If
Set cnncomando = Nothing
Set rs_arquivo = Nothing
End With
End If
End If
End Sub
Vejam onde informo para gravar na tabela ARQUIVO os dados da tabela PROJETOS, porém, além destes campos gostaria de por dentro do: INSERT INTO, o outro campo da tabela ARQUIVO, que é o campo CAIXA mas, o valor informado para este campo teria que ser informado pelo usuario por uma inputbox, que viria logo após o ELSE, o problema é quando colocar o campo CAIXA dentro de:
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
onde colocarei a variavel valor da inputbox?
CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & VALOR DA INPUTBOX & " "
.Execute
acho que não pode ser assim alexandre, pois
where cod = " & TextCOD_PROJETOS.Text & " "
tem que ficar pois é a referencia de gravar os dados onde o campo cod for igual nas duas tabelas
where cod = " & TextCOD_PROJETOS.Text & " "
tem que ficar pois é a referencia de gravar os dados onde o campo cod for igual nas duas tabelas
Aonde ta o inputbox?
oi SINKERTEC! irei colocar logo após o ELSE para informar o numero da caixa do arquivo, assim:
Else
Dim vCAIXA as integer
vCAIXA = inputbox("Insira o numero da caixa em que será arquivado o projetos", "Arquivar projeto")
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
como vê os campos:
cod
cpf
nome
serão os mesmos da tabela PROJETOS, porém, o número da caixa será o que o usuario por na inputbox, salvando os dados do projeto na tabela ARQUIVO com seu respectivo numero de caixa
Else
Dim vCAIXA as integer
vCAIXA = inputbox("Insira o numero da caixa em que será arquivado o projetos", "Arquivar projeto")
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
como vê os campos:
cod
cpf
nome
serão os mesmos da tabela PROJETOS, porém, o número da caixa será o que o usuario por na inputbox, salvando os dados do projeto na tabela ARQUIVO com seu respectivo numero de caixa
Entendi
veja se é mais ou menos isso:
vCAIXA = inputbox("Insira o numero da caixa em que será arquivado o projetos", "Arquivar projeto")
.CommandText = " insert into arquivo(cod, cpf, nome, CAIXA)select cod, cpf, nome, vCAIXA from projetos where cod = " & TextCOD_PROJETOS.Text & " "
é isso q vc quer q aconteça?..n vai funcionar tá..é só uma visuzalição pra eu enteder o q quer
Exatamente!, eu até tentei assim por conta de minha falta de experiência, mas pensei um pouco e vi que desta forma indicava que vCAIXA fazia parte da tabela projetos coisa que não é verdade, então começou minha perigrinação pela resposta.
Tentei dar um update após o insert Into, pois com o insert eu lanço os valores cod, cpf e nome e depois com o update como o codigo ja constando da tabela arquivo eu atualizaria colocando o valor do campo caixa referente ao mesmo campo que acabou de ser inserido, mas não funcionou, pela lógica deveria funcionar, agora não achei a explicação do porquê não funcionou.
CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA) select cod, cpf, nome, '" & Input_Box & "' as Caixa from projetos where cod = " & VALOR DA INPUTBOX & " "
.Execute
Tenta da forma acima amigo...
Obrigado meus caros SINKERTEC E MARCELO pela atenção, vou relatar como ficou a situação, como falei acima, uma das opções seria jogar um update logo após o insert que acaba funcionando como uma continuação do insert na verdade, pois na tabela arquivo estão todos os campos VAZIOS, então eu lanço os campos COD, NOME, CPF através do insert e em seguida com o update lanço o campo CAIXA obtendo o valor através da inputbox, mas tudo acabou funcionando como um insert, bom, pra finalizar...deu certo fazendo está montagem, abaixo a parte do código:
Dim cnncomando As New ADODB.Command
Dim rs_arquivo As New ADODB.Recordset
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " select * from arquivo "
Set rs_arquivo = .Execute
End With
With rs_arquivo
rs_arquivo.Filter = " cod = " & TextCOD_PROJETOS.Text
If Not (.BOF And .EOF) Then
Dim vJA_EXISTE_NO_ARQUIVO As Integer
vJA_EXISTE_NO_ARQUIVO = MsgBox("Este projeto já consta na Base de Dados do Arquivo", vbOKOnly + vbCritical, "Arquivar projeto")
Else
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
Dim vcaixa As Long
vcaixa = InputBox("caixa")
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " update arquivo set " & _
" caixa = '" & vcaixa & "'" & _
" where cod = " & TextCOD_PROJETOS.Text & ";"
.Execute
Dim vOK As Integer
vOK = MsgBox("Projeto arquivado com sucesso", vbOKOnly + vbInformation, "Arquivar projeto")
End With
Set cnncomando = Nothing
Set rs_arquivo = Nothing
Dim cnncomando As New ADODB.Command
Dim rs_arquivo As New ADODB.Recordset
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " select * from arquivo "
Set rs_arquivo = .Execute
End With
With rs_arquivo
rs_arquivo.Filter = " cod = " & TextCOD_PROJETOS.Text
If Not (.BOF And .EOF) Then
Dim vJA_EXISTE_NO_ARQUIVO As Integer
vJA_EXISTE_NO_ARQUIVO = MsgBox("Este projeto já consta na Base de Dados do Arquivo", vbOKOnly + vbCritical, "Arquivar projeto")
Else
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " insert into arquivo " & _
"(cod, cpf, nome)select cod, cpf, nome from projetos where cod = " & TextCOD_PROJETOS.Text & " "
.Execute
Dim vcaixa As Long
vcaixa = InputBox("caixa")
With cnncomando
.ActiveConnection = cnnProjetos
.CommandType = adCmdText
.CommandText = " update arquivo set " & _
" caixa = '" & vcaixa & "'" & _
" where cod = " & TextCOD_PROJETOS.Text & ";"
.Execute
Dim vOK As Integer
vOK = MsgBox("Projeto arquivado com sucesso", vbOKOnly + vbInformation, "Arquivar projeto")
End With
Set cnncomando = Nothing
Set rs_arquivo = Nothing
Tópico encerrado , respostas não são mais permitidas