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

ERRO


Leandro_Pirozzi

Pergunta

Se alguém puder me ajudar nessa função, agradeço.

O erro é exibido quando carrego os dados e depois clico no botao alterar, quando peço pra atualizar pra salvar as novas modificações ele exibe esse erro:

Nenhum valor foi fornecido para um ou mais parâmetros necessários

Estou passando a função MODIFICADA acabei criando uma variavel para cada combo pois existiam 2 combos que não passavam o valor, agora passam valor, porém permanece o erro.

Obrigado desde já.

Function Atualizar_Empresa()

Dim P As Integer

Dim R As Integer

Dim I As Integer

Dim S As Integer

Dim C As Integer

Dim L As Integer

Dim E As Integer

Dim rs As ADODB.Recordset

Dim lcID_EQUIPE As String

Dim lcTIPO As String

Dim lcCODIGO As String

Dim lcID_CARGO As String

Dim lcID_PAIS As String

Dim lcPAIS As String

Dim lcID_CIDADE As String

Dim lcID_UF As String

If Not Verifica_Campos Then

MsgBox "Campo obrigatório vazio, favor verificar.", vbInformation, "Atenção"

Exit Function

End If

Dim strSQL As String

If Controle = "Novo" Then

strSQL = "select CODEMP from CONTATOS_EMPTESTE where CODEMP = '" & Me.txtcodemp.Text & "'"

Set rs = New ADODB.Recordset

rs.Open strSQL, gDB, adOpenStatic, adLockReadOnly

If rs.RecordCount > 0 Then

MsgBox "ID Empresa já existente!", vbExclamation, "Atenção"

Me.txtcodemp.SetFocus

Exit Function

End If

strSQL = "insert into CONTATOS_EMPTESTE "

strSQL = strSQL & "(CODEMP, CNPJ, NOMEMPRESA, ENDEMPRESA, CEPEMPRESA, DDD, TELEMPRESA, FAXEMPRESA "

strSQL = strSQL & " LIVRE, EQUIPEMP, CATEGORIAEMP, TIPOCARTA, CARGO, PAISEMP, CIDADEMP "

strSQL = strSQL & " UFCIDADE, BAIEMPRESA, DDDCIDADE, TELCONTCIDADE, DATAINC, DATALT )"

strSQL = strSQL & "VALUES ( '" & txtcodemp.Text & "','" & txtcnpj.Text & "', "

strSQL = strSQL & "'" & Me.txtempresa.Text & "' , "

strSQL = strSQL & "'" & Me.txtend.Text & "' , "

strSQL = strSQL & "'" & Me.txtCep.Text & "' , "

strSQL = strSQL & "'" & Me.txtddd.Text & "' , "

strSQL = strSQL & "'" & Me.txtcontato.Text & "' , "

strSQL = strSQL & "'" & Me.txtfax.Text & "' , "

strSQL = strSQL & "'" & Me.txtlivre.Text & "' , "

strSQL = strSQL & "'" & Me.cboequipe.ItemData(Me.cboequipe.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cbonumfunc.ItemData(Me.cbonumfunc.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cbocarta.ItemData(Me.cbocarta.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cbocargo.ItemData(Me.cbocargo.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cbopais.ItemData(Me.cbopais.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cbocidade.ItemData(Me.cbocidade.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.cboUF.ItemData(Me.cboUF.ListIndex) & "' , "

strSQL = strSQL & "'" & Me.txtbairro.Text & "' , '" & Me.txtdddcad.Text & "', "

strSQL = strSQL & "'" & Me.txttelefone.Text & "' , "

strSQL = strSQL & "'" & Date & "')"

Else

strSQL = "update CONTATOS_EMPTESTE "

strSQL = strSQL & " set CNPJ = '" & txtcnpj.Text & "' , "

strSQL = strSQL & " NOMEMPRESA = '" & Me.txtempresa.Text & "' , "

strSQL = strSQL & " ENDEMPRESA = '" & Me.txtend.Text & "' , "

strSQL = strSQL & " CEPEMPRESA = '" & Me.txtCep.Text & "' , "

strSQL = strSQL & " DDD = '" & Me.txtddd.Text & "' , "

strSQL = strSQL & " TELEMPRESA = '" & Me.txtcontato.Text & "' , "

strSQL = strSQL & " FAXEMPRESA = '" & Me.txtfax.Text & "' , "

strSQL = strSQL & " LIVRE = '" & Me.txtlivre.Text & "' , "

For P = 0 To Me.cboequipe.ListCount

If Me.cboequipe.List(P) = Me.cboequipe.Text Then

lcID_EQUIPE = Me.cboequipe.ItemData(P)

Exit For

Else

lcID_EQUIPE = ""

End If

Next

strSQL = strSQL & " ID_EQUIPE = '" & lcID_EQUIPE & "' ,"

For R = 0 To Me.cbonumfunc.ListCount

If Me.cbonumfunc.List® = Me.cbonumfunc.Text Then

lcTIPO = Me.cbonumfunc.ItemData®

Exit For

Else

lcTIPO = ""

End If

Next

strSQL = strSQL & " ID_TIPO = '" & lcTIPO & "' , "

For I = 0 To Me.cbocarta.ListCount

If Me.cbocarta.List(I) = Me.cbocarta.Text Then

lcCODIGO = Me.cbocarta.ItemData(I)

Exit For

Else

lcCODIGO = ""

End If

Next

strSQL = strSQL & " CODIGO = '" & lcCODIGO & "' , "

For S = 0 To Me.cbocargo.ListCount

If Me.cbocargo.List(S) = Me.cbocargo.Text Then

lcID_CARGO = Me.cbocargo.ItemData(S)

Exit For

Else

lcID_CARGO = ""

End If

Next

strSQL = strSQL & " ID_CARGO = '" & lcID_CARGO & "' , "

For C = 0 To Me.cbopais.ListCount

If Me.cbopais.List© = Me.cbopais.Text Then

lcID_PAIS = Me.cbopais.ItemData©

Exit For

Else

lcPAIS = ""

End If

Next

strSQL = strSQL & " ID_PAIS = '" & lcID_PAIS & "' , "

For L = 0 To Me.cbocidade.ListCount

If Me.cbocidade.List(L) = Me.cbocidade.Text Then

lcID_CIDADE = Me.cbocidade.ItemData(L)

Exit For

Else

lcID_CIDADE = ""

End If

Next

strSQL = strSQL & " ID_CIDADE = '" & lcID_CIDADE & "' , "

For E = 0 To Me.cboUF.ListCount

If Me.cboUF.List(E) = Me.cboUF.Text Then

lcID_UF = Me.cboUF.ItemData(E)

Exit For

Else

lcID_UF = ""

End If

Next

strSQL = strSQL & " ID_UF = '" & lcID_UF & "' , "

strSQL = strSQL & " BAIEMPRESA = '" & Me.txtbairro.Text & "' , "

strSQL = strSQL & " DDDCIDADE = '" & Me.txtdddcad.Text & "' , "

strSQL = strSQL & " TELEFONE = '" & Me.txttelefone.Text & "' , "

strSQL = strSQL & " DATALT = '" & Date & "'"

strSQL = strSQL & " where CODEMP = '" & txtcodemp.Text & "'"

End If

gDB.Execute strSQL

If gDB.Errors.Count <> 0 Then

MsgBox "Problemas na atualização da Empresa!", vbExclamation, "Atenção"

Call Limpa_Campos

Me.txtcodemp.BackColor = &H80000005

Me.txtempresa.BackColor = &H80000005

Else

MsgBox "Empresa atualizada com sucesso", vbInformation, "Atenção"

Call Limpa_Campos

Me.txtcodemp.BackColor = &H80000005

Me.txtempresa.BackColor = &H80000005

End If

Call Habilita_Campos(False)

Call Controle_botoes(True, frmcademp)

End Function

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

7 respostass a esta questão

Posts Recomendados

  • 0

acho q isso é campo inexistente. provavelmnet você digitou o nome de algum campo errado ou esqueceu de por algum texto entre ' '.

da uma checada e se não conseguir achar o erro, ponha um breakpoint (F9) na linha do erro. e quando chegar la (a execucao deve parar), abra o immediate window (ctrl + g) e digite ? strSql e aperte ENTER. e ai ele deve mostrar como ficuo a query.

ai tenta executar como consulta direto no access e ele deve apontar o cursor no lugar no erro.

se tiver dificuldade, poste ai o conteudo da query q aparece no immediate window.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela resposta Kuroi, mas estou postando aqui o conteudo do Immediate. Os campos em branco estao entre ' '.

?strsql

update CONTATOS_EMPTESTE set CNPJ = '00000000000' , NOMEMPRESA = 'TELEFONICA S/A' , ENDEMPRESA = 'AV. MARQUES DE SÃO VICENTE, 288' , CEPEMPRESA = '01139-000' , DDD = '011' , TELEMPRESA = '111111' , FAXEMPRESA = '111111' , LIVRE = 'SEM DADOS' , ID_EQUIPE = '26' , ID_TIPO = '' , CODIGO = '' , ID_CARGO = '' , ID_PAIS = '1060' , ID_CIDADE = '182' , ID_UF = '26' , BAIEMPRESA = 'BELA VISTA' , CONTATOS_CIDADE.DDD = 'SEM DADOS', CONTATOS_CIDADE.TELEFONE = 'SEM DADOS', DATALT = '29/1/2009' where CODEMP = '2498'

tem idéia do q pode ser?

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Depois de verificar e mudar no Access, permanece ainda o erro.

update CONTATOS_EMPTESTE set CNPJ = '00000000000' , NOMEMPRESA = 'TELEFONICA S/A' , ENDEMPRESA = 'AV. MARQUES DE SÃO VICENTE, 288' , CEPEMPRESA = '01139-000' , DDD = '011' , TELEMPRESA = '111111' , FAXEMPRESA = '111111' , LIVRE = 'DO QUE?' , ID_EQUIPE = '26' , ID_TIPO = '5' , CODIGO = '11' , ID_CARGO = '20' , ID_PAIS = '1060' , ID_CIDADE = '182' , ID_UF = '26' , BAIEMPRESA = 'BELA VISTA' , DDDCIDADE = '011' , TELEFONE = '36628000' , DATALT = '29/1/2009' where CODEMP = '2498'

Link para o comentário
Compartilhar em outros sites

  • 0

se é a mesma mensagem de erro ainda so imagino q seja nome de campo digitado errado.

quando você tenta executar dentro do access, normalmente ele aponta o cursor pro campo q tiver errado (ou ele vai abrir uma janelinha pedidno pra você digitar o valor do campo inexistente. isso acontece, pois ele interpreta o campo inexistente como um parametro, por isso ele pede o valor, e por isso aquela mensagem). ai você poderia identificar qual campo esta errado.

abra uma nova consulta no access (se você já tiver salvo essa consulta, não abra ela e sim uma nova) e tenta de novo.

se ainda não conseguir, faca o seguinte então, vai apagando os campos da sql e vai testando. tipo um por um.

tira o campo DATALT e execute a query e veja se não vai executar. se der certo, você vai saber q é o DATAALT. senao, depois tire o TELEFONE (mas ainda não insira o DATAALT de volta, já q pode ter erro em mais de um campo) e assim por diante.

e como pode ser mais de um campo errado, então o melhor é você tb ir inserindo de volta um por um depois.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...