Leandro_Pirozzi Postado Fevereiro 10, 2009 Denunciar Share Postado Fevereiro 10, 2009 Pessoal como fazer para armazenar o valor do check ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 11, 2009 Denunciar Share Postado Fevereiro 11, 2009 se ele estiver checado, a propriedade Value retorna 1, senao retorna 0. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 (editado) ... Editado Fevereiro 11, 2009 por Leandro_Pirozzi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 (editado) 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 Fevereiro 17, 2009 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 17, 2009 Autor Denunciar Share Postado Fevereiro 17, 2009 ... Ainda continuo com o problema hehee... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 17, 2009 Denunciar Share Postado Fevereiro 17, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 17, 2009 Autor Denunciar Share Postado Fevereiro 17, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 17, 2009 Denunciar Share Postado Fevereiro 17, 2009 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?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 18, 2009 Autor Denunciar Share Postado Fevereiro 18, 2009 Como fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 18, 2009 Denunciar Share Postado Fevereiro 18, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 18, 2009 Autor Denunciar Share Postado Fevereiro 18, 2009 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 = rsEnd Function Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 18, 2009 Denunciar Share Postado Fevereiro 18, 2009 então. declara esses dois aqui:Dim cn As ADODB.ConnectionDim 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). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 18, 2009 Autor Denunciar Share Postado Fevereiro 18, 2009 Opa, obrigadão pela dica.Vou tentar fazer isso agora.O correto é abrir a conexao uma única vez no form não é? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 18, 2009 Denunciar Share Postado Fevereiro 18, 2009 O correto é abrir a conexao uma única vez no form não é?é o melhor. melhora o desempenhenho e fica mais facil pra programar.alias, pra dizer a verdade, eu costumo declara um objeto connection publico no module e abrir a conexao uma unica vez no programa todo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 18, 2009 Autor Denunciar Share Postado Fevereiro 18, 2009 (editado) 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 Fevereiro 19, 2009 por Leandro_Pirozzi Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leandro_Pirozzi
Pessoal como fazer para armazenar o valor do check ?
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
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.