Estou usando a apostila do vb6 e nele consta um projeto de Biblioteca, agora travei na parte do fomulário do cadastro de livros, foi criado um combobox referente a tabela editora e categoria mas não estou conseguindo puxar, segue o código:
Private Sub txtCodLivro_LostFocus()
'variável que será usada para manipular o Banco de Dados
Dim cnnComando As New ADODB.Command
'variável que recebe os dados do Banco de Dados e Grava no BD de volta
Dim rsSelecao As New ADODB.Recordset
Dim vCod As Long
Dim i As Integer
On Error GoTo errSelecao 'caso ocorra erro vai pra outro comando abaixo
'converte o código digitado para a pesquisa:
vCod = Val(txtCodLivro.Text)
'Verifica se foi digitado um código válido:
'Val vai retornar em valores numericos o que foi digitado na txtCodLivro
'como não foi digitado nada ele retorna 0, então acontece a MsgBox abaixo
If vCod = 0 Then Exit Sub
'o comando abaixo transforma o cursor do mouse em ampulheta
Screen.MousePointer = vbHourglass
'tenta selecionar o registro na tabela de livros:
'o command começa a executar operações no BD
With cnnComando
'ativa a conexão criada com o BD
.ActiveConnection = cnnbiblio
'indica o tipo de dados a ser aberto
.CommandType = adCmdText
'Monta o comando Select para selecionar o registro na tabela:
'indica qual o campo a ser trabalhado
.CommandText = "Select * from Livros where CodLivro= " & vCod & ";"
'declarando que o rsSeleção será executado como declarado acima
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then
'Se o recordset esta vazio, não retornou registro com esse código:
'LimparDados ->errado na apostila, deve dar continuidade tanto na inclusão como na alteração
'Identifica a operação como inclusão:
vInclusao = True
Else
'Senão, atribui aos campos os dados do registro:
txtTitulo.Text = !Titulo
txtAutor.Text = !Autor
vCodEditora = !CodEditora
vCodCategoria = !CodCategoria
vAcompCD = !AcompCD
vAcompDisquete = !AcompDisquete
vIdioma = !Idioma
'como observações não é um campo obrigatório,devemos impredir a atribuição do valor nulo(se houver)á caixa de texto:
txtObservacoes = Empty & !Observacoes
'exibe os dados das variáveis nos controles correspondentes:
With cboEditora
'elimina a seleção atual:
.ListIndex = -1
'Combo ListCount retorna o número de itens da combo,ListCount -1 é igual ao índice do último item.
'Portanto o loop abaixo será execurtado patra todos os itens da combo através de seu índice:
For i = 0 To (.ListCount - 1)
If vCodEditora = .ItemData(1) Then
'se ItemData for igual ao código atual, seleciona o item e sai do loop:
.ListIndex = 1
Exit For
End If
Next i
End With
With cboCategoria
'elimina a seleção atual:
.ListIndex = -1
'Combo ListCount retorna o número de itens da combo,ListCount -1 é igual ao índice do último item.
'Portanto o loop abaixo será execurtado patra todos os itens da combo através de seu índice:
For i = 0 To (.ListCount - 1)
If vCodCategoria = .ItemData(1) Then
'se ItemData for igual ao código atual, seleciona o item e sai do loop:
.ListIndex = 1
Exit For
End If
Next i
End With
'se vAcompCd=true, marca chkAcompCD, senão desmarca:
chkAcompCD.Value = IIf(vAcompCD, vbChecked, vbUnchecked)
chkAcompDiquete.Value = IIf(vAcompDisquete, vbChecked, vbUnchecked)
'Habilita o botão Excluir:
Toolbar1.Buttons(3).Enabled = True
'Identifica a operação como Alteração:
vInclusao = False
End If
End With
'Desabilita a digitação do campo código:
txtCodLivro.Enabled = False
saida:
'Elimina o command e o recordset da mémoria:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub
errSelecao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na recuperação do registro solicitado." & .Description, vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
' MsgBox "Houve um erro na recuperação do registro solicitado.", vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
'ver o erro ao digitar o código do usuário
.Number = 0
GoTo saida
End If
End With
End Sub
Pergunta
jackbcc
Estou usando a apostila do vb6 e nele consta um projeto de Biblioteca, agora travei na parte do fomulário do cadastro de livros, foi criado um combobox referente a tabela editora e categoria mas não estou conseguindo puxar, segue o código:
Private Sub txtCodLivro_LostFocus()
'variável que será usada para manipular o Banco de Dados
Dim cnnComando As New ADODB.Command
'variável que recebe os dados do Banco de Dados e Grava no BD de volta
Dim rsSelecao As New ADODB.Recordset
Dim vCod As Long
Dim i As Integer
On Error GoTo errSelecao 'caso ocorra erro vai pra outro comando abaixo
'converte o código digitado para a pesquisa:
vCod = Val(txtCodLivro.Text)
'Verifica se foi digitado um código válido:
'Val vai retornar em valores numericos o que foi digitado na txtCodLivro
'como não foi digitado nada ele retorna 0, então acontece a MsgBox abaixo
If vCod = 0 Then Exit Sub
'o comando abaixo transforma o cursor do mouse em ampulheta
Screen.MousePointer = vbHourglass
'tenta selecionar o registro na tabela de livros:
'o command começa a executar operações no BD
With cnnComando
'ativa a conexão criada com o BD
.ActiveConnection = cnnbiblio
'indica o tipo de dados a ser aberto
.CommandType = adCmdText
'Monta o comando Select para selecionar o registro na tabela:
'indica qual o campo a ser trabalhado
.CommandText = "Select * from Livros where CodLivro= " & vCod & ";"
'declarando que o rsSeleção será executado como declarado acima
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then
'Se o recordset esta vazio, não retornou registro com esse código:
'LimparDados ->errado na apostila, deve dar continuidade tanto na inclusão como na alteração
'Identifica a operação como inclusão:
vInclusao = True
Else
'Senão, atribui aos campos os dados do registro:
txtTitulo.Text = !Titulo
txtAutor.Text = !Autor
vCodEditora = !CodEditora
vCodCategoria = !CodCategoria
vAcompCD = !AcompCD
vAcompDisquete = !AcompDisquete
vIdioma = !Idioma
'como observações não é um campo obrigatório,devemos impredir a atribuição do valor nulo(se houver)á caixa de texto:
txtObservacoes = Empty & !Observacoes
'exibe os dados das variáveis nos controles correspondentes:
With cboEditora
'elimina a seleção atual:
.ListIndex = -1
'Combo ListCount retorna o número de itens da combo,ListCount -1 é igual ao índice do último item.
'Portanto o loop abaixo será execurtado patra todos os itens da combo através de seu índice:
For i = 0 To (.ListCount - 1)
If vCodEditora = .ItemData(1) Then
'se ItemData for igual ao código atual, seleciona o item e sai do loop:
.ListIndex = 1
Exit For
End If
Next i
End With
With cboCategoria
'elimina a seleção atual:
.ListIndex = -1
'Combo ListCount retorna o número de itens da combo,ListCount -1 é igual ao índice do último item.
'Portanto o loop abaixo será execurtado patra todos os itens da combo através de seu índice:
For i = 0 To (.ListCount - 1)
If vCodCategoria = .ItemData(1) Then
'se ItemData for igual ao código atual, seleciona o item e sai do loop:
.ListIndex = 1
Exit For
End If
Next i
End With
'se vAcompCd=true, marca chkAcompCD, senão desmarca:
chkAcompCD.Value = IIf(vAcompCD, vbChecked, vbUnchecked)
chkAcompDiquete.Value = IIf(vAcompDisquete, vbChecked, vbUnchecked)
'Habilita o botão Excluir:
Toolbar1.Buttons(3).Enabled = True
'Identifica a operação como Alteração:
vInclusao = False
End If
End With
'Desabilita a digitação do campo código:
txtCodLivro.Enabled = False
saida:
'Elimina o command e o recordset da mémoria:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub
errSelecao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na recuperação do registro solicitado." & .Description, vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
' MsgBox "Houve um erro na recuperação do registro solicitado.", vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
'ver o erro ao digitar o código do usuário
.Number = 0
GoTo saida
End If
End With
End Sub
Help......
Link para o comentário
Compartilhar em outros sites
1 resposta 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.