PROBLEMAS AO CARREGAR DADOS FIREBIRD COM LISTVIEW
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
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....
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...
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
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!!!
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[Ô]) & [Ô][ô][Ô]
Você não tem nenhum exemplo do que preciso, para adaptá-lo não?
[Ô]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