VALOR DE UMA INPUTBOX DENTRO DE UM INSERT INTO

USUARIO.EXCLUIDOS 22/08/2007 22:03:09
#232152
Vejam este codigo:


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?
ALEXANDREMOTA 22/08/2007 22:37:24
#232154
CommandText = " insert into arquivo " & _
"(cod, cpf, nome, CAIXA)select cod, cpf, nome from projetos where cod = " & VALOR DA INPUTBOX & " "
.Execute

USUARIO.EXCLUIDOS 22/08/2007 23:17:36
#232156
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

USUARIO.EXCLUIDOS 23/08/2007 07:01:48
#232159
Aonde ta o inputbox?
USUARIO.EXCLUIDOS 23/08/2007 12:00:44
#232221
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

USUARIO.EXCLUIDOS 23/08/2007 12:40:06
#232232

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
USUARIO.EXCLUIDOS 23/08/2007 16:01:07
#232343
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.
USUARIO.EXCLUIDOS 24/08/2007 11:48:04
#232562
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.
USUARIO.EXCLUIDOS 24/08/2007 11:52:49
#232564
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...
USUARIO.EXCLUIDOS 24/08/2007 20:57:59
#232634
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
Tópico encerrado , respostas não são mais permitidas