COMO PREENCHER?
então consegui trazer o registro na combo da forma tradicional. o problema era um user control q uso. agora, como eu posso fazer com o registro 1- rafael já venha selecionado na combo?
list1.listindex = 0 '0 é o primeiro item da lista
eu fiz essa função q preenche a combo:
Public Sub PreencheCombo(ByVal m_CDPFJ As String)
On Error GoTo Erro
Dim sSQL As String
Dim Rs As Object
sSQL = "SELECT"
sSQL = sSQL & " CD_SEQEMIT,"
sSQL = sSQL & " NOMEEMIT"
sSQL = sSQL & " FROM"
sSQL = sSQL & " EMITCHEQ"
sSQL = sSQL & " WHERE"
sSQL = sSQL & " CD_PFJ = " & CStrSQL(m_CDPFJ)
sSQL = sSQL & " ORDER BY"
sSQL = sSQL & " CD_SEQEMIT"
If Not ExecBanco(ACT_OPENRS, sSQL, Rs) Then GoTo Fim
If NumeroRegistros(Rs) > 0 Then
While Not Rs.EOF
cmbCHEQ_NOMEEMIT.AddItem SQLPegaColLng(Rs!CD_SEQEMIT) & "- " & SQLPegaColStr(Rs!NOMEEMIT)
cmbCHEQ_NOMEEMIT.ListIndex = 0
Rs.MoveNext
Wend
End If
aàeu chamo essa função numa outra q carrega a tela:
PreencheCombo m_CDPFJ
e joga isso para trazer o cpf formatato:
If SQLPegaColLng(Rs!TP_PFJ) = TPPFJ_Fisica Then
dRecebeCNPJ_CPF = SQLPegaColDbl(Rs(9))
objtxtCNPJ_CPF_CHEQUE.Texto = format(dRecebeCNPJ_CPF, g_sMascara_CPF)
Else
dRecebeCNPJ_CPF = SQLPegaColDbl(Rs(9))
objtxtCNPJ_CPF_CHEQUE.Texto = right(String(18, "0") & Replace(format(dRecebeCNPJ_CPF, g_sMascara_CNPJ), " ", ""), 18)
End If
só q quando jogo esse bloco a minha combo não vem preenchida. só depois q clico nela. e ainda quandi clica vem errado, vem 0- rafael quando teria q ser 1- rafael
qual o erro?
coloca listindex fora do while:
agora pq ele ta colocando 0 é estranho.
se você abrir a tabela qual o código do rafael?
While Not Rs.EOF
cmbCHEQ_NOMEEMIT.AddItem SQLPegaColLng(Rs!CD_SEQEMIT) & "- " & SQLPegaColStr(Rs!NOMEEMIT)
Rs.MoveNext
Wend
cmbCHEQ_NOMEEMIT.ListIndex = 0
agora pq ele ta colocando 0 é estranho.
se você abrir a tabela qual o código do rafael?
amigo vc pode fazer dessa maneira tambem
vc pode declarar assim
vc pode declarar assim
dim I as integer 'isso para criar um novo index para a combo
I = 0
While Not Rs.EOF
cmbCHEQ_NOMEEMIT.AddItem SQLPegaColLng(Rs!CD_SEQEMIT) & "- " & SQLPegaColStr(Rs!NOMEEMIT)
Rs.MoveNext
cmbCHEQ_NOMEEMIT.newindex = I
I = I + 1
Wend
o código é 1 pro rafael.
estranho é q parece q de alguma forma é o campo cpf q está influenciando. pq quando eu tiro o campo cpf traz selecionado. mais aàquando coloco naum vem selecionado e vem zero ainda na combo.
pq isso? estranho
estranho é q parece q de alguma forma é o campo cpf q está influenciando. pq quando eu tiro o campo cpf traz selecionado. mais aàquando coloco naum vem selecionado e vem zero ainda na combo.
pq isso? estranho
ops errei um negocinho
dim I as integer 'isso para criar um novo index para a combo
I = 0
While Not Rs.EOF
cmbCHEQ_NOMEEMIT.AddItem SQLPegaColLng(Rs!CD_SEQEMIT) & "- " & SQLPegaColStr(Rs!NOMEEMIT)
cmbCHEQ_NOMEEMIT.newindex = I
I = I + 1
Rs.MoveNext
Wend
entao faz assim
cmbCHEQ_NOMEEMIT.ItemData(cmbCHEQ_NOMEEMIT.NewIndex) = 'aqui voce coloca o codigo que é
thiago naum adiantou.
a minha função estava trazendo os dados numa matriz q criei. assim:
Private Type EmitenteCheque_Rec
ID_ATIVO As Long
TP_PESSOA As Long
CPFCNPJ As Double
CD_PFJ As String
CD_SEQEMIT As Long
CD_BANCO As Long
NOMEEMIT As String
NOMEAGENCIA As String
NUMAGENCIA As String
NUMCONTA As String
ID_BLOQUEIO As Long
DT_ABRECONTA As Date
End Type
Private m_EMITCHEQUE_Index As Long
Private m_EMITCHEQUE_Count As Long
Private m_EMITCHEQUE() As EmitenteCheque_Rec
e o campo cpf é esse m_EMITCHEQUE(iAux).CPFCNPJ = SQLPegaColDbl(Rs(9))
só q numa matriz não aceita valores com o tipo double. porém o meu campo cpf foi tratado de uma forma no banco q só pode ser como tipo double. se eu tentar mudar pra integer ou long ele dá overflow.
então por estar dentro de uma matriz eu não consigo fazer com que quando carregue a tela o campo cpf venha formatado.
se alguém souber uma forma q eu consiga trazer o cpf formatado mesmo tando numa matriz.
vlw
a minha função estava trazendo os dados numa matriz q criei. assim:
Private Type EmitenteCheque_Rec
ID_ATIVO As Long
TP_PESSOA As Long
CPFCNPJ As Double
CD_PFJ As String
CD_SEQEMIT As Long
CD_BANCO As Long
NOMEEMIT As String
NOMEAGENCIA As String
NUMAGENCIA As String
NUMCONTA As String
ID_BLOQUEIO As Long
DT_ABRECONTA As Date
End Type
Private m_EMITCHEQUE_Index As Long
Private m_EMITCHEQUE_Count As Long
Private m_EMITCHEQUE() As EmitenteCheque_Rec
Public Sub CarregaTela(ByVal m_CDPFJ As String)
On Error GoTo Erro
Dim sSQL As String
Dim Rs As Object
Dim iAux As Integer
Dim sRecebeNome As String
Dim lRecebeID As Long
ctlReferenciasPFJ.m_CDPFJ = m_CDPFJ
ctlReferenciasPFJ.CarregaTelaReferencias
ctlCreditoPFJ1.m_sCD_PFJ = m_CDPFJ
sSQL = "SELECT"
sSQL = sSQL & " CD_PFJ," '0
sSQL = sSQL & " CD_SEQEMIT," '1
sSQL = sSQL & " CD_BANCO," '2
sSQL = sSQL & " NOMEEMIT," '3
sSQL = sSQL & " NOMEAGENCIA," '4
sSQL = sSQL & " NUMAGENCIA," '5
sSQL = sSQL & " NUMCONTA," '6
sSQL = sSQL & " ID_BLOQUEIO," '7
sSQL = sSQL & " ID_ATIVO," '8
sSQL = sSQL & " CNPJ_CPF," '9
sSQL = sSQL & " TP_PFJ," '10
sSQL = sSQL & " DT_ABRECONTA" '11
sSQL = sSQL & " FROM"
sSQL = sSQL & " EMITCHEQ"
sSQL = sSQL & " WHERE"
sSQL = sSQL & " CD_PFJ = " & CStrSQL(m_CDPFJ)
sSQL = sSQL & " ORDER BY"
sSQL = sSQL & " CD_SEQEMIT"
If Not ExecBanco(ACT_OPENRS, sSQL, Rs) Then GoTo Fim
m_EMITCHEQUE_Index = -1
m_EMITCHEQUE_Count = NumeroRegistros(Rs)
If m_EMITCHEQUE_Count > 0 Then
'If NumeroRegistros(Rs) > 0 Then
iAux = 0
'ReDim m_EMITCHEQUE(m_EMITCHEQUE_Count)
While Not Rs.EOF
m_EMITCHEQUE(iAux).ID_ATIVO = SQLPegaColLng(Rs(8))
m_EMITCHEQUE(iAux).TP_PESSOA = SQLPegaColLng(Rs(10))
m_EMITCHEQUE(iAux).CPFCNPJ = SQLPegaColDbl(Rs(9))
m_EMITCHEQUE(iAux).CD_SEQEMIT = SQLPegaColLng(Rs(1))
m_EMITCHEQUE(iAux).CD_BANCO = SQLPegaColLng(Rs(2))
m_EMITCHEQUE(iAux).NOMEEMIT = SQLPegaColStr(Rs(3))
m_EMITCHEQUE(iAux).NOMEAGENCIA = SQLPegaColStr(Rs(4))
m_EMITCHEQUE(iAux).NUMAGENCIA = SQLPegaColStr(Rs(5))
m_EMITCHEQUE(iAux).NUMCONTA = SQLPegaColStr(Rs(6))
m_EMITCHEQUE(iAux).ID_BLOQUEIO = SQLPegaColLng(Rs(7))
m_EMITCHEQUE(iAux).DT_ABRECONTA = SQLPegaColDate(Rs(11))
iAux = iAux + 1
Rs.MoveNext
Wend
End If
Rs.Close
AtualizaTelaEmiCheque
ctlSociosPFJ.CarregaTela m_CDPFJ
ctlCreditoPFJ1.ConsultaDadosTitulos
Fim:
Exit Sub
Erro:
TrataErros "DadosClientePFJ - CarregaTela()", Err
End Sub
e o campo cpf é esse m_EMITCHEQUE(iAux).CPFCNPJ = SQLPegaColDbl(Rs(9))
só q numa matriz não aceita valores com o tipo double. porém o meu campo cpf foi tratado de uma forma no banco q só pode ser como tipo double. se eu tentar mudar pra integer ou long ele dá overflow.
então por estar dentro de uma matriz eu não consigo fazer com que quando carregue a tela o campo cpf venha formatado.
se alguém souber uma forma q eu consiga trazer o cpf formatado mesmo tando numa matriz.
vlw
exemplificando melhor vou te mostrar aqui
While Not Rs.EOF
cmbCHEQ_NOMEEMIT.AddItem SQLPegaColLng(Rs!CD_SEQEMIT) & "- " & SQLPegaColStr(Rs!NOMEEMIT)
cmbCHEQ_NOMEEMIT.ItemData(cmbCHEQ_NOMEEMIT.NewIndex) = Rs!CD_SEQEMIT 'aqui e o codigo do rafael que nem vc tinha dito
Rs.MoveNext
Wend
Tópico encerrado , respostas não são mais permitidas