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

Como armazenar o valor do check?


Leandro_Pirozzi

Pergunta

14 respostass a esta questão

Posts Recomendados

  • 0

foi o q eu fiz, mas quando clico no grid existem registros de usuários diferentes, porém o que ele marcou no click não muda quando eu dou um click em outro registro do grid ele continua com os mesmos check marcados.

Acontece que no BD quando esta checado ele joga o valor "X" e quando não está ele joga "0".

Ai eu fiz assim.

Public Function PreencheCheck()
    
    Dim rs As Recordset
    Dim strSQL As String
    
    strSQL = "select * from CONTATOS_PROPOSTA where CODEMP = '" & frmcademp.txtcodemp.Text & "'"
    
    Set rs = New Recordset
    
    rs.Open strSQL, gDB, adOpenStatic, adLockReadOnly
    
    If rs!SEGURO = "X" Then
        frmcademp.CheSeguro.Value = 1
   else
        frmcademp.CheSeguro.Value = 0
    End If
    
    If rs!CONTABIL = "X" Then
        frmcademp.CheContabil.Value = 1
    else
        frmcademp.CheContabil.Value = 0
    End If
     
    If rs!INVENTFISICO = "X" Then
        frmcademp.CheInvFis.Value = 1
    else
        frmcademp.CheInvFis.Value = 0
    End If

    If rs!RECADASTRO = "X" Then
        frmcademp.CheRecadastro.Value = 1
    else
        frmcademp.CheRecadastro.Value = 0
    End If
    
    If rs!CONFRONTO = "X" Then
        frmcademp.CheConfronto.Value = 1
    else
        frmcademp.CheConfronto.Value = 0
    End If
    
    If rs!AJUCONTABIL = "X" Then
        frmcademp.CheAjuContabil.Value = 1
    else
        frmcademp.CheAjuContabil.Value = 0
    End If
    
    If rs!EMPLAQ = "X" Then
        frmcademp.CheEmplaq.Value = 1
    else
        frmcademp.CheEmplaq.Value = 0
    End If
    
    If rs!CAUTELA = "X" Then
        frmcademp.CheCautela.Value = 1
   else
        frmcademp.CheCautela.Value = 0
    End If
    
    If rs!ECOFIN = "X" Then
        frmcademp.CheEcoFin.Value = 1
    else
        frmcademp.CheEcoFin.Value = 0
    End If
    
    If rs!FUNCOMERCIO = "X" Then
        frmcademp.CheFunComercio.Value = 1
    else
        frmcademp.CheFunComercio.Value = 0
    End If
    
    If rs!TECNO = "X" Then
        frmcademp.CheTecno.Value = 1
    else
        frmcademp.CheTecno.Value = 0
    End If
    
    If rs!ME = "X" Then
        frmcademp.CheMe.Value = 1
    else
        frmcademp.CheMe.Value = 0
    End If
    
    If rs!MU = "X" Then
        frmcademp.CheMu.Value = 1
    else
        frmcademp.CheMu.Value = 0
    End If
    
    If rs!EDIF = "X" Then
        frmcademp.CheEdif.Value = 1
    else
        frmcademp.CheEdif.Value = 0
    End If
    
    If rs!INSINDUSTRIAL = "X" Then
        frmcademp.CheInsIndustrial.Value = 1
    else
        frmcademp.CheInsIndustrial.Value = 0
    End If
    
    If rs!TERRENO = "X" Then
        frmcademp.CheTerreno.Value = 1
    else
        frmcademp.CheTerreno.Value = 0
    End If
    
    If rs!EQINF = "X" Then
        frmcademp.CheEqInf.Value = 1
    else
        frmcademp.CheEqInf.Value = 0
    End If
   
    If rs!VEICULO = "X" Then
        frmcademp.CheVeiculo.Value = 1
    else
        frmcademp.CheVeiculo.Value = 0
    End If
    
    If rs!ESPONTANEA = "X" Then
        frmcademp.CheEspo.Value = 1
    else
        frmcademp.CheEspo.Value = 0
    End If
    
    If rs!VENDA = "X" Then
        frmcademp.CheVenda.Value = 1
    else
        frmcademp.CheVenda.Value = 0
    End If
    
    If rs!MARCA = "X" Then
        frmcademp.CheMarca.Value = 1
    else
        frmcademp.CheMarca.Value = 0
    End If
    
    If rs!GARANTIA = "X" Then
        frmcademp.CheGarantia.Value = 1
    else
        frmcademp.CheGarantia.Value = 0
    End If
    
    If rs!PATRIMONIO = "X" Then
        frmcademp.ChePatri.Value = 1
    else
        frmcademp.ChePatri.Value = 0
    End If
    
    If rs!SIAV = "X" Then
        frmcademp.CheSiav.Value = 1
    else
        frmcademp.CheSiav.Value = 0
    End If
    
    If rs!SIPAV = "X" Then
        frmcademp.CheSipav.Value = 1
    else
        frmcademp.CheSipav.Value = 0
    End If
    
    If rs!BOOK = "X" Then
        frmcademp.CheBook.Value = 1
    else
        frmcademp.CheBook.Value = 0
    End If
    
    If rs!MIGRASISCONT = "X" Then
        frmcademp.CheMigra.Value = 1
    else
        frmcademp.CheMigra.Value = 0
    End If
    
    If rs!MANUALNORMA = "X" Then
        frmcademp.CheManual.Value = 1
    else
        frmcademp.CheManual.Value = 0
    End If
    
    If rs!DISPOESPEC = "X" Then
        frmcademp.CheDispo.Value = 1
    else
        frmcademp.CheDispo.Value = 0
    End If
    
    If rs!FERRADISPO = "X" Then
        frmcademp.CheFerra.Value = 1
    else
        frmcademp.CheFerra.Value = 0
    End If
    
End Function

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

hum, é q quando você disse:

Ai eu fiz assim.

eu entendi q essa ai era solucao q você tinha arranjado.

mas então, não entendi direito o problema.

o problema ta na hora de trazer do banco ou de gravar no banco??

você ta pegando os dados de um grid?? se for isso você não pode fazer outro select antes de mostrar, senao ele volta pro primero registro. você teria q pegar direto do recordset q tiver vinculado no grid.

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo assim:

Tenho vários check's ai o usuário preenche por exemplo uma proposta e determina os check's que ele quer marcar em sua proposta.

Esses dados são armazenados no BD com o valor de "X" se o check.value = 1 e "0" se o check.value = 0.

Ai bele. Fiz dessa maneira ai e ele apresenta.

Porém como eu tenho mais de um registro para o mesmo usuário, e propostas diferentes ele marca somente a primeira opção que eu cliquei, não mudando os check's de outra proposta, entendeu mais ou menos o problema?

hehe.. rapaz to ficando maluco com o sistema, mas aos poucos está indo.

então os dados eu busco do banco e mostro no grid, ai quando clico no grid ele marca os check e os texts, porém se clico em outra consulta do grid ele continua os mesmos check habilitados não mudando de acordo com os dados que seleciono no grid.

Link para o comentário
Compartilhar em outros sites

  • 0

então, acho q o problema é essa parte aqui não??

strSQL = "select * from CONTATOS_PROPOSTA where CODEMP = '" & frmcademp.txtcodemp.Text & "'"
    
    Set rs = New Recordset
    
    rs.Open strSQL, gDB, adOpenStatic, adLockReadOnly[/code]

os dados não tão no grid?? não seria so pegar direto do recordset q ta vinculado ao grid??

Link para o comentário
Compartilhar em outros sites

  • 0

qual grid você ta usando??

não é o datagrid?? o recordset não ta vinculado??

tipo não tem uma hora no codigo q você faz assim??

Set DataGrid1.DataSource = rs

é esse rs ai q você tem q usar. não precisa fazer outro select como você ta fazendo. pegue direto desse recordset. o resto do codigo ta certinho.

ou se por acaso você ta usando outro grid tipo o msflexgrid, ai sim você tem q fazer esse select como você ta fazendo, mas tem q pegar pela linha q você tiver no grid. ai você pegua pelo textmatrix. ve ai qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0

então to utilizando essa function aqui pra preencher o grid com os dados da tabela.

Function Exibircontemp()

Dim SQL As String

Dim cn As ADODB.Connection

Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection

With cn

.Provider = "Microsoft.Jet.OLEDB.4.0"

.ConnectionString = "Data Source=F:\Advanced\CONTATOS.mdb"

.Open

End With

Set rs = New ADODB.Recordset

Set rs.ActiveConnection = cn

rs.CursorLocation = adUseClient

SQL = "Select CODEMP, NOMCONT, CODCONT, EMAILCONT, CARGOCONT, TELCONT, SECRETARIA from CONTATOS_CONTATO " & _

" WHERE CODEMP = '" & txtcodemp & "'"

rs.Open SQL

Set Me.DataGrid1.DataSource = rs

End Function

Link para o comentário
Compartilhar em outros sites

  • 0

então. declara esses dois aqui:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset[/code]

la em cima no Generals. tipo na primera linha da janela de codigo.

assim eles vao valer pro formulario todo. não so pra funcao.

assim agora você pode abrir a conexao uma vez so. de preferencia, abra no load do formulario. e ai so feche no unload.

e não precisa mais abrir em nenhum lugar. assim fica mais facil de mexer e o progrma tb fica mais rapido.

e assim o rs vai valer tb pro formulario todo. ai você vincula ele ao grid.

e depois disso tome cuidado, pois você tb deve estar usando recordset com o nome de rs em outras funcoes não??

então mude o nome desse rs ou dos outros pra não dar conflito.

e ai pronto, você vai poder acessar os dados do grid de qualquer funcao.

ai é so apagar as 3 linhas q eu apontei q essa funcao do checkbox deve funcionar (so presta atencao com o nome do recordset).

Link para o comentário
Compartilhar em outros sites

  • 0

OPAAA AGORA SIM.

JOGUEI A FUNÇÃO PRO FORM ELA ESTAVA NO MODULO.

APONTEI PARA O RS CORRETO E BELEZINHA.

VLW KUROI. TO POSTANDO A FUNCTION CORRETA AQUI, CASO ALGUÉM TENHA ALGUM PROBLEMA PARECIDO COM O MEU.

Public Function PreencheCheck()

If rsprop!SEGURO = "X" Then

Me.CheSeguro.Value = 1

Else

Me.CheSeguro.Value = 0

End If

If rsprop!CONTABIL = "X" Then

Me.CheContabil.Value = 1

Else

Me.CheContabil.Value = 0

End If

If rsprop!INVENTFISICO = "X" Then

Me.CheInvFis.Value = 1

Else

Me.CheInvFis.Value = 0

End If

If rsprop!RECADASTRO = "X" Then

Me.CheRecadastro.Value = 1

Else

Me.CheRecadastro.Value = 0

End If

If rsprop!CONFRONTO = "X" Then

Me.CheConfronto.Value = 1

Else

Me.CheConfronto.Value = 0

End If

If rsprop!AJUCONTABIL = "X" Then

Me.CheAjuContabil.Value = 1

Else

Me.CheAjuContabil.Value = 0

End If

If rsprop!EMPLAQ = "X" Then

Me.CheEmplaq.Value = 1

Else

Me.CheEmplaq.Value = 0

End If

If rsprop!CAUTELA = "X" Then

Me.CheCautela.Value = 1

Else

Me.CheCautela.Value = 0

End If

If rsprop!ECOFIN = "X" Then

Me.CheEcoFin.Value = 1

Else

Me.CheEcoFin.Value = 0

End If

If rsprop!FUNCOMERCIO = "X" Then

Me.CheFunComercio.Value = 1

Else

Me.CheFunComercio.Value = 0

End If

If rsprop!TECNO = "X" Then

Me.CheTecno.Value = 1

Else

Me.CheTecno.Value = 0

End If

If rsprop!Me = "X" Then

Me.CheMe.Value = 1

Else

Me.CheMe.Value = 0

End If

If rsprop!MU = "X" Then

Me.CheMu.Value = 1

Else

Me.CheMu.Value = 0

End If

If rsprop!EDIF = "X" Then

Me.CheEdif.Value = 1

Else

Me.CheEdif.Value = 0

End If

If rsprop!INSINDUSTRIAL = "X" Then

Me.CheInsIndustrial.Value = 1

Else

Me.CheInsIndustrial.Value = 0

End If

If rsprop!TERRENO = "X" Then

Me.CheTerreno.Value = 1

Else

Me.CheTerreno.Value = 0

End If

If rsprop!EQINF = "X" Then

Me.CheEqInf.Value = 1

Else

Me.CheEqInf.Value = 0

End If

If rsprop!VEICULO = "X" Then

Me.CheVeiculo.Value = 1

Else

Me.CheVeiculo.Value = 0

End If

If rsprop!ESPONTANEA = "X" Then

Me.CheEspo.Value = 1

Else

Me.CheEspo.Value = 0

End If

If rsprop!VENDA = "X" Then

Me.CheVenda.Value = 1

Else

Me.CheVenda.Value = 0

End If

If rsprop!MARCA = "X" Then

Me.CheMarca.Value = 1

Else

Me.CheMarca.Value = 0

End If

If rsprop!GARANTIA = "X" Then

Me.CheGarantia.Value = 1

Else

Me.CheGarantia.Value = 0

End If

If rsprop!PATRIMONIO = "X" Then

Me.ChePatri.Value = 1

Else

Me.ChePatri.Value = 0

End If

If rsprop!SIAV = "X" Then

Me.CheSiav.Value = 1

Else

Me.CheSiav.Value = 0

End If

If rsprop!SIPAV = "X" Then

Me.CheSipav.Value = 1

Else

Me.CheSipav.Value = 0

End If

If rsprop!BOOK = "X" Then

Me.CheBook.Value = 1

Else

Me.CheBook.Value = 0

End If

If rsprop!MIGRASISCONT = "X" Then

Me.CheMigra.Value = 1

Else

Me.CheMigra.Value = 0

End If

If rsprop!MANUALNORMA = "X" Then

Me.CheManual.Value = 1

Else

Me.CheManual.Value = 0

End If

If rsprop!DISPOESPEC = "X" Then

Me.CheDispo.Value = 1

Else

Me.CheDispo.Value = 0

End If

If rsprop!FERRADISPO = "X" Then

Me.CheFerra.Value = 1

Else

Me.CheFerra.Value = 0

End If

If rsprop!DESPESA = "X" Then

Me.CheIncluida.Value = 1

Else

Me.CheIncluida.Value = 0

End If

If rsprop!DESPESA = "0" Then

Me.Cheexcluida.Value = 1

Else

Me.Cheexcluida.Value = 0

End If

If rsprop!ISS = "X" Then

Me.CheIncluso.Value = 1

Else

Me.CheIncluso.Value = 0

End If

If rsprop!ISS = "0" Then

Me.CheNaoIncluso.Value = 1

Else

Me.CheNaoIncluso.Value = 0

End If

End Function

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