PROBLEMAS AO CARREGAR DADOS FIREBIRD COM LISTVIEW

ADRIANOM 09/01/2011 00:23:46
#361652
Agora o txt código não está sendo preenchido..
está certo o código para pegar informações do listview?
Citação:

Private Sub Editar()
If RSFUN.RecordCount = 0 Then
MsgBox [Ô]Não existem dados a serem editados.[Ô], vbCritical, [Ô]GWorks Softs[Ô]
Exit Sub
Else
Unload Me
frmEditFunc.txtCodigo.Text = lstRegistro.ListItems(lstRegistro.SelectedItem.Index)
frmEditFunc.Show
End If
End Sub

ADRIANOM 09/01/2011 11:58:59
#361667
MARCELO-TREZE, é O SEGUINTE:

Usei essa última alteração que você propôs, porém não gerou erro.. ele executou a mensagem de não ter encontrado registro para editar...
Mas notei um fato interessante...

Tenho, para testes, 3 funcionairos cadastrados... se seleciono o último funcionário, ele carrega o formulário de edição com o código do primeiro funcionário listado no LSTREGISTRO.
Ae abre o formulário vazio.. e avisa que não localizou nada...
Tô sem entender... Mais uma vez posto o código:

frmFUNCIONÁRIOS - ONDE LISTA TODOS OS FUNCIONÁRIOS REGISTRADOS
Citação:


Option Explicit
Public Sub PreencheLista()
Dim Rtexto
Dim lst As Variant
Set RSFUN = New ADODB.Recordset
RSFUN.Open [Ô]SELECT * FROM FUNCIONARIOS ORDER BY NOME[Ô], CNN, adOpenStatic, adLockOptimistic
lstRegistro.ListItems.Clear
[ô]simula a função de replace com condição
If RSFUN.RecordCount = 0 Then
Set lst = lstRegistro.ListItems.Add(, , [Ô]<VAZIO>[Ô], , 1)
Else

If RSFUN!NASCIMENTO = [Ô]1[Ô] Then
Rtexto = [Ô]Sim[Ô]
Else
Rtexto = [Ô]Não[Ô]
End If
[ô]Preenche a lista
Do While Not RSFUN.EOF
Set lst = lstRegistro.ListItems.Add(, , RSFUN!Codigo, , 1)
With lst
.SubItems(1) = RSFUN!NOME & [Ô][Ô]
.SubItems(2) = RSFUN!SEXO & [Ô][Ô]
.SubItems(3) = RSFUN!NASCIMENTO & [Ô][Ô]
.SubItems(4) = RSFUN!RG & [Ô][Ô]
.SubItems(5) = RSFUN!CPF & [Ô][Ô]
.SubItems(6) = RSFUN!ENDERECO & [Ô][Ô]
.SubItems(7) = RSFUN!NUMERO & [Ô][Ô]
.SubItems(8) = RSFUN!BAIRRO & [Ô][Ô]
.SubItems(9) = RSFUN!Cidade & [Ô][Ô]
.SubItems(10) = RSFUN!CEP & [Ô][Ô]
.SubItems(11) = RSFUN!UF & [Ô][Ô]
.SubItems(12) = RSFUN!TEL & [Ô][Ô]
.SubItems(13) = RSFUN!CEL & [Ô][Ô]
.SubItems(14) = RSFUN!Funcao & [Ô][Ô]
.SubItems(15) = CCur(RSFUN!SALARIO) & [Ô][Ô]
.SubItems(16) = Rtexto & [Ô][Ô]
.SubItems(17) = RSFUN!CARTRAB & [Ô][Ô]
.SubItems(18) = RSFUN!ADMISSAO & [Ô][Ô]
.SubItems(19) = RSFUN!DEMISSAO & [Ô][Ô]
.SubItems(20) = RSFUN!MOTIVO & [Ô][Ô]
.SubItems(21) = RSFUN!OBSERVACAO & [Ô][Ô]
.SubItems(22) = RSFUN!INCLUSAO & [Ô][Ô]
.SubItems(23) = RSFUN!ALTERACAO & [Ô][Ô]
.SubItems(24) = RSFUN!USUARIO & [Ô][Ô]
End With
RSFUN.MoveNext
Loop
End If
End Sub

Private Sub Adicionar()
Unload Me
frmAddFunc.Show
frmAddFunc.txtNome.SetFocus
End Sub

Private Sub Editar()
If RSFUN.RecordCount = 0 Then
MsgBox [Ô]Não existem dados a serem editados.[Ô], vbCritical, [Ô]GWorks Softs[Ô]
Exit Sub
Else
Unload Me
frmEditFunc.txtCodigo.Text = lstRegistro.ListItems(lstRegistro.SelectedItem.Index)
frmEditFunc.Show
End If
End Sub

Private Sub cmdEditar_Click()
Call Editar
End Sub

Private Sub cmdRegistrar_Click()
Call Adicionar
End Sub

Private Sub cmdSair_Click()
Unload Me
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
SendKeys ([Ô]{tab}[Ô])
KeyAscii = 0
End If
End Sub

Private Sub Form_Load()
CONECTA True
Me.Move (frmPrincipal.Width - Me.Width) / 2, (frmPrincipal.Height - Me.Height) / 3
Call PreencheLista
End Sub

Private Sub lstRegistro_DblClick()
Call Editar
End Sub



continua....
ADRIANOM 09/01/2011 12:06:46
#361668
frmEditFun (Formulário onde ocorre a edição)

Citação:


Option Explicit
Private Sub CARREGADADOS()
Dim SQLfu As String
Dim CRITERIOfu As String

Set RSFUN = New ADODB.Recordset
SQLfu = [Ô]SELECT * FROM Funcionarios WHERE Funcionarios.Codigo =[ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]

With RSFUN
.Open SQLfu, CNN, adOpenDynamic, adLockOptimistic
If .RecordCount = 0 Then
.Close
MsgBox [Ô]Não foi localizado nenhum funcionário com o código selecionado. Tente novamente![Ô], vbCritical, [Ô]GWorks Softs[Ô]
Exit Sub
Else
txtCodigo.Text = !Codigo
txtInclusao.Text = Format(!INCLUSAO, [Ô]dd/mm/yyyy[Ô])
txtAlteracao.Text = Format(Date, [Ô]dd/mm/yyyy[Ô])
txtUsuario.Text = frmPrincipal.txtUsuario.Text
txtNome.Text = !NOME
txtSexo.Text = !SEXO
txtNasc.Text = !NASCIMENTO
TXTrg.Text = !RG
txtCPF.Text = !CPF
cmbEndereco.Text = !ENDERECO
txtNumero.Text = !NUMERO
cmbBairro.Text = !BAIRRO
cmbCidade.Text = !Cidade
txtCEP.Text = !CEP
txtUF.Text = !UF
txtTel.Text = !TEL
txtCel.Text = !CEL
cmbFuncao.Text = !Funcao
txtSalario.Text = !SALARIO
txtCom.Text = !COMISSIONADO
txtTrab.Text = !CARTRAB
txtAdmissao.Text = !ADMISSAO
txtDemissao.Text = !DEMISSAO
txtMotivo.Text = !MOTIVO
txtOBS.Text = !OBSERVACAO

If txtCom.Text = [Ô]1[Ô] Then
chkComissao.Value = True
Else
chkComissao.Value = False
End If
End If
End With
End Sub

Private Sub Salvar()
[ô]VERIFICA OS CAMPOS DE PREENCHIMENTO OBRIGATÓRIO
If txtNome.Text = [Ô][Ô] Then GoTo erro
If cmbEndereco.Text = [Ô][Ô] Then GoTo erro
If txtNumero.Text = [Ô][Ô] Then GoTo erro
If cmbBairro.Text = [Ô][Ô] Then GoTo erro
If cmbCidade.Text = [Ô][Ô] Then GoTo erro
If txtUF.Text = [Ô]__[Ô] Then GoTo erro
If cmbFuncao.Text = [Ô][Ô] Then GoTo erro
If txtSalario.Text = [Ô][Ô] Then GoTo erro

[ô]Salva os dados NA TABELA DE FUNCIONARIOS
Ssql = Ssql & [Ô][Ô]
Ssql = Ssql & [Ô] UPDATE FUNCIONARIOS(CODIGO,INCLUSAO,ALTERACAO,USUARIO,NOME,[Ô]
Ssql = Ssql & [Ô]SEXO,NASCIMENTO,RG,CPF,ENDERECO,NUMERO,BAIRRO,CIDADE,CEP,UF,[Ô]
Ssql = Ssql & [Ô]TEL,CEL,FUNCAO,SALARIO,COMISSIONADO,CARTRAB,ADMISSAO,DEMISSAO,MOTIVO,OBSERVACAO)[Ô]
Ssql = Ssql & [Ô]VALUES([Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtCodigo.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & Format(txtInclusao.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & Format(txtAlteracao.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtUsuario.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtNome.Text & [Ô][ô],[Ô]
Ssql = Ssql & IIf(txtSexo.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtSexo.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & IIf(txtNasc.Text = [Ô]__/__/____[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtNasc.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & TXTrg.Text & [Ô][ô],[Ô]
Ssql = Ssql & IIf(txtCPF.Text = [Ô]___.___.___-__[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtCPF.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & cmbEndereco.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtNumero.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & cmbBairro.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & cmbCidade.Text & [Ô][ô],[Ô]
Ssql = Ssql & IIf(txtCEP.Text = [Ô]_____-___[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtCEP.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & IIf(txtUF.Text = [Ô]__[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtUF.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & IIf(txtTel.Text = [Ô](__)____-____[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtTel.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & IIf(txtCel.Text = [Ô](__)____-____[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & txtCel.Text & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & cmbFuncao.Text & [Ô][ô],[Ô]
Ssql = Ssql & IIf(txtSalario.Text = Empty, [Ô]Null[Ô], [Ô][ô][Ô] & CCur(txtSalario.Text) & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtCom.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtTrab.Text & [Ô][ô],[Ô]
Ssql = Ssql & IIf(txtAdmissao.Text = [Ô]__/__/____[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtAdmissao.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & IIf(txtDemissao.Text = [Ô]__/__/____[Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Format(txtDemissao.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]) & [Ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtMotivo.Text & [Ô][ô],[Ô]
Ssql = Ssql & [Ô][ô][Ô] & txtOBS.Text & [Ô][ô])[Ô]
With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = Ssql
.Execute
End With
[ô]Adiciona um novo endereço,BAIRRO, CIDADE, FUNÇÃO, caso ele não exista
Call AddComboEndereco
Call AddComboBairro
Call AddComboCidade
Call AddComboFuncao
Unload Me
frmFuncionarios.Show
Exit Sub
erro:
MsgBox [Ô]Favor preencher os campos obrigatórios: Nome, Admissão, Endereço, Número/Complemento, Bairro, Cidade, UF, Função e/ou Salário.[Ô], vbCritical, [Ô]GWorks Softs[Ô]
End Sub

Private Sub Form_Load()

Me.Move (frmPrincipal.Width - Me.Width) / 2, (frmPrincipal.Height - Me.Height) / 7

CONECTA True

CarregaComboEndereco cmbEndereco
CarregaComboBairro cmbBairro
CarregaComboCidade cmbCidade
CarregaComboFuncao cmbFuncao

Call CARREGADADOS

End Sub



Agora você me diz... onde estou errando...? Postei tudo aqui.. do jeito que está nos forms...
MARCELO.TREZE 09/01/2011 15:34:18
#361674
eu to achando que o recordcount não está funcionando, tente isto

mude isto

If .RecordCount = 0 Then
.Close
MsgBox [Ô]Não foi localizado nenhum funcionário com o código selecionado. Tente novamente![Ô], vbCritical, [Ô]GWorks Softs[Ô]
Exit Sub
Else

pra isto

If (.BOF = True And .EOF = True) Then
.Close
MsgBox [Ô]Não foi localizado nenhum funcionário com o código selecionado. Tente novamente![Ô], vbCritical, [Ô]GWorks Softs[Ô]
Exit Sub
Else
ADRIANOM 10/01/2011 13:23:07
#361747
Marcelo-Treze;

Alterei... e só dá a mensagem - [Ô]Não foi localizado nenhum funcionário com o código selecionado. Tente novamente![Ô]
Em seguida, ao clicar em OK na mensagem, abre o formulário de edição com o código [Ô]000002[Ô] preenchido e todos os outros campos vazio...
Estou reparando que, posso selecionar qualquer código no lstRegistro (frmFuncionarios), que o frmEditFun carrega apenas o primeiro código ordenado da lista... e o que realmente eu cliquei não está carregado, e muito menos os dados corretamente!!!

Será que tem como vc me postar um exemplo, dentro do padrão que estou querendo montar, para ver se consigo adaptar a minha necessidade ao código ou você tem idéia de onde está o erro?
O meu código está certo? Estou quase a uma semana nesse dilema... Help me!!!
ADRIANOM 10/01/2011 14:38:36
#361756
Alguém? Por favor!!!
MARCELO.TREZE 10/01/2011 17:28:58
#361777
será que não é a formatação

como o código aparece dentro da tabela 00002 ou 2, talvez seja isto, tente formatar o código

exemplo

SQLfu = [Ô]SELECT * FROM Funcionarios WHERE Funcionarios.Codigo =[ô][Ô] & Format(txtCodigo.Text,[Ô]000000[Ô]) & [Ô][ô][Ô]
ADRIANOM 10/01/2011 19:01:11
#361789
Creio que não seja o código, pois ele é salvo com 000002...

Você não tem nenhum exemplo do que preciso, para adaptá-lo não?
MARCELO.TREZE 10/01/2011 19:02:55
#361790
testou a query formatada que passei acima

ADRIANOM 10/01/2011 19:37:49
#361793
Testei sim, Marcelo-Treze, e dá o aviso
[Ô]Não foi localizado nenhum funcionário com o código selecionado. Tente novamente![Ô]
Ae abre o formulário de edição com o txtcódigo preenchido com o código 000002, sendo que escolhi para ser editado o código 00003... também não preencheu nada; nem com os dados do código 00002
Página 2 de 5 [44 registro(s)]
Tópico encerrado , respostas não são mais permitidas