Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida no UPDATE


Leandro_Pirozzi

Pergunta

Boa tarde galera.

Seguinte: porque meu UPDATE atualiza todos os campos da tabela ao invés de atualizar somente o campo que foi selecionado no COMBO???

No caso seleciono os dados da tabela de EMPRESAS e busco o NOME DA EMPRESA, ASSESSOR e a EQUIPE desta empresa e preciso INCLUIR esses valores na tabela PROPOSTAOK, então quando seleciona o campos no COMBO e clica no botao selecionar, ele exibe os dados no grid, ai clicando no grid ele alimenta os 3 texts que eu preciso para atualizar a tabela PROPOSTAOK. Mas quando clico no botao UPDATE ele simplesmente atualiza todos os 3 campos, porém da tabela toda ao ivés do campo que eu tinha selecionado no COMBO.

Vou exibir um exemplo:

Aqui era pra atualizar o CODIGO 29 que seria a empresa 'AES SUL - DISTRIBUIDORA GAÚCHA DE ENERGIA S/A, com

ASSESSOR RUTE e EQUIPE RUTE, porem atualiza toda a tabela.

UPDATE CONTATOS_PROPOSTAOK set EMPRESA = 'AES SUL - DISTRIBUIDORA GAÚCHA DE ENERGIA S/A' , 
ASSESSOR = 'RUTE' , 
EQUIPE = 'RUTE'
Aqui ele esta jogando os valores do select para os TEXTS.
Private Sub GridEX1_Click()
    Text1.Text = rsselec!ASSESSOR & ""
    Text2.Text = rsselec!EQUIPE & ""
    Text3.Text = rsselec!NOMEMPRESA & ""
End Sub
Aqui onde ele faz o select
Public Function SELECIONA()
    Dim SQL As String
     
    Set cnselec = New ADODB.Connection
    
    With cnselec
      .Provider = "MSDAORA.1;Password=xxxx;User ID=marketing;Data Source=ORCL"
'      .Provider = "Microsoft.Jet.OLEDB.4.0"
'      .ConnectionString = "Data Source=" & App.Path & "\CONTATOS.mdb;"
      .Open
    End With
    
    Set rsselec = New ADODB.Recordset
    Set rsselec.ActiveConnection = cnselec
    rsselec.CursorLocation = adUseClient
    
    SQL = "SELECT NOMEMPRESA, ASSESSOR, EQUIPE FROM CONTATOS_EMPRESA WHERE CODEMP = '" & COMBO1.Text & "'"
    
    rsselec.Open SQL
      
'    Set Me.DataGrid3.DataSource = rsprop
    Set Me.GridEX1.ADORecordset = rsselec
    
    If rsselec.EOF Then
'        DataGrid3.Visible = False
        GridEX1.Visible = False
    Else
'        DataGrid3.Visible = True
        GridEX1.Visible = True
    End If
        
End Function
Aqui é onde faz o update.
Dim SQLins As String
    Dim icol As Integer
    
    Set cnpropok = New ADODB.Connection
    
    With cnpropok
        .Provider = "MSDAORA.1;Password=xxxx;User ID=marketing;Data Source=ORCL"
        .Open
    End With
    
    Set rspropok = New ADODB.Recordset
    Set rspropok.ActiveConnection = cnpropok
    rspropok.CursorLocation = adUseClient
    
    Set rspropok = New ADODB.Recordset
    
        SQLins = "UPDATE CONTATOS_PROPOSTAOK set "
        SQLins = SQLins & "EMPRESA        = '" & Text3.Text & "' , "
        SQLins = SQLins & "ASSESSOR       = '" & Text1.Text & "' , "
        SQLins = SQLins & "EQUIPE         = '" & Text2.Text & "'"
        
        cnpropok.Execute SQLins
               
        MsgBox "Alteração de proposta efetuado com sucesso"
    Call SELECIONA

Onde errei?

obrigado!!!

Editado por Leandro_Pirozzi
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

claro, seu código ficaria assim:

...

 SQLins = "UPDATE CONTATOS_PROPOSTAOK set "
        SQLins = SQLins & "EMPRESA        = '" & Text3.Text & "' , "
        SQLins = SQLins & "ASSESSOR       = '" & Text1.Text & "' , "
        SQLins = SQLins & "EQUIPE         = '" & Text2.Text & "'"
        SQLins = SQLins & " Where CAMPO = '" & Valor desejado"

....

agora é so substituir o nome CAMPO pelo campo onde está o que deseja, e o valor será o combox.text, como no select feito anteriormente

Link para o comentário
Compartilhar em outros sites

  • 0
claro, seu código ficaria assim:

...

 SQLins = "UPDATE CONTATOS_PROPOSTAOK set "
        SQLins = SQLins & "EMPRESA        = '" & Text3.Text & "' , "
        SQLins = SQLins & "ASSESSOR       = '" & Text1.Text & "' , "
        SQLins = SQLins & "EQUIPE         = '" & Text2.Text & "'"
        SQLins = SQLins & " Where CAMPO = '" & Valor desejado"

....

agora é so substituir o nome CAMPO pelo campo onde está o que deseja, e o valor será o combox.text, como no select feito anteriormente

Opa obrigado!

Mas mesmo assim ele atualiza a tabela toda.

Tá estranho demais.

Link para o comentário
Compartilhar em outros sites

  • 0
claro, seu código ficaria assim:

...

 SQLins = "UPDATE CONTATOS_PROPOSTAOK set "
        SQLins = SQLins & "EMPRESA        = '" & Text3.Text & "' , "
        SQLins = SQLins & "ASSESSOR       = '" & Text1.Text & "' , "
        SQLins = SQLins & "EQUIPE         = '" & Text2.Text & "'"
        SQLins = SQLins & " Where CAMPO = '" & Valor desejado"

....

agora é so substituir o nome CAMPO pelo campo onde está o que deseja, e o valor será o combox.text, como no select feito anteriormente

Opa obrigado!

Mas mesmo assim ele atualiza a tabela toda.

Tá estranho demais.

AHHHHHHH AGORA FOI UHAAHUA...

POUTS Q ALIVIO, DESSA EU não SABIA MESMO.

EU TINHA COMIDO BOLA, COMO ELE ESTAVA ATUALIZANDO A TABELA TODA, TODOS OS CAMPOS FICARAM IGUAIS, POR ISSO ELE ESTAVA DEMORANDO E ATUALIZANDO TUDO. AGORA JOGUEI A TABELA DE NOVO E FIZ O UPDATE, AI FOI UMA BELEZINHA

não SABIA Q PODIA UTILIZAT O WHERE EM UPDATE.

valeu MESMO!!

OBRIGADÃO, MAIS UMA Q APRENDI!!!

Editado por Leandro_Pirozzi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...