Ir para conteúdo
Fórum Script Brasil

Girréis

Membros
  • Total de itens

    33
  • Registro em

  • Última visita

Tudo que Girréis postou

  1. Kuroi, entendi, mas o erro ainda continua..... ´ grato, Girréis
  2. Kuroi, quer dizer que devo usar Sim/Não no lugar do True/False? Girréis
  3. Kuroi, o conteúdo do sql está correto, ele inclui, mas o estranho que o único que está com o formato diferente é o AcompCD e o AcompDisquete, pois no banco de dados ele está como Sim/Não e no VB está como True/False; e já troquei usando 1(True) e 0(False) e nada! acho que o melhor é não usar checkbox, mas como irei aprender, né? grato, Girréis
  4. Kuroi, Em quais campos? Nestes? ---- Private Sub chkAcompCD_Click() 'Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor 'correspondente: If chkAcompCD.Value = vbChecked Then vAcompCD = True Else vAcompCD = False End If End Sub Private Sub chkAcompDisquete_Click() 'Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor 'correspondente: If chkAcompDisquete.Value = vbChecked Then vAcompDisquete = True Else vAcompDisquete = False End If End Sub ----- ou em outros, porque se for nestes já alterei e continua não dando certo? Grato, Girréis
  5. Kuroi, já fiz isso hj de manhã lá no trabalho e não deu certo, usei os comandos do SQL manualmente e deu certo, mas agora achei um post que fala deste problema, mas diz respeito ao checkbox, pois no banco de dados em access o formato do campo AcompCD e AcompDisquete está como sim/não, mas no VB está como True/False, como contornar isso? grato, Girréis
  6. qual a linha?? mas olhando aqui, parece que o campo CodLivro da sua tabela é do tipo texto e você esta fazendo a query como se fosse numero, veja ai Boa noite, Kuroi a linha em destaque que deu erro foi: 'Executa o comando de gravação: With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText .CommandText = vSQL .Execute End With Grato, Girréis qual a linha?? mas olhando aqui, parece que o campo CodLivro da sua tabela é do tipo texto e você esta fazendo a query como se fosse numero, veja ai Boa noite, Kuroi a linha em destaque que deu erro foi: 'Executa o comando de gravação: With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText .CommandText = vSQL .Execute End With Grato, Girréis ps: mais precisamente no .Execute
  7. Boa noite, Graymalkin não entendi este erro: Run-time error '-2147217913(80040e07)': Tipo de dados imcompatível na expressão de critério. grato, Girréis
  8. Boa noite, amigos! Acabei de me cadastrar neste site, para tirar dúvidas sobre a linguagem Visual Basic 6.0, e espero aprender o mais breve possível! Baixei na internet um arquivo em pdf que ensina os principais comando no VB 6.0, e ainda por cima tem um projeto que explica com detalhes, mas acredito que ainda falta alguns "detalhes" e estou quebrando a cabeça para resolver! Mandarei um arquivo zipado para que vocês possam me explicar o erro. - existe um ícone ao abrir o programa Bibliotecário, Cadastro de Livros, ao incluir algum dado pelo programa ele dá erro, e não sei se é o SQL ou alguma variável que não está retornando, pois no banco de dados, em access, certos campos são números e então essas variáveis também "transformei" em número(testei Long, Integer ) e nada, dá erro ao gravar no banco de dados. - segue o código para análise, pois o que está destacado em vermelho não está gravando no banco de dados. Grato à todos, Girreis ps:. desculpe pelo post, não sei como colocar um arquivo zipado! Option Explicit Dim vInclusao As Boolean Dim vCodEditora, vCodCategoria As Long Dim vCod As Long Dim vAcompCD, vAcompDisquete As Boolean Dim vIdioma As Byte Private Sub cboCategoria_Click() With cboCategoria 'Verifica se foi selecionado um item da combo: If .ListIndex <> -1 Then 'Se foi, atribui à variável vCodEditora o conteúdo da 'propriedade ItemData: vCodCategoria = .ItemData(.ListIndex) Else 'Senão, zera a variável: vCodCategoria = 0 End If End With End Sub Private Sub cboEditora_Click() With cboEditora 'Verifica se foi selecionado um item da combo: If .ListIndex <> -1 Then 'Se foi, atribui à variável vCodEditora o conteúdo da 'propriedade ItemData: vCodEditora = .ItemData(.ListIndex) Else 'Senão, zera a variável: vCodEditora = 0 End If End With End Sub Private Sub chkAcompCD_Click() 'Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor 'correspondente: If chkAcompCD.Value = vbChecked Then vAcompCD = True Else vAcompCD = False End If End Sub Private Sub chkAcompDisquete_Click() 'Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor 'correspondente: If chkAcompDisquete.Value = vbChecked Then vAcompDisquete = True Else vAcompDisquete = False End If End Sub Private Sub Form_KeyPress(KeyAscii As Integer) 'se a tecla Enter foi pressionada, passa o foco para o próximo controle na 'sequência de TabIndex: If KeyAscii = vbKeyReturn Then SendKeys "{Tab}" KeyAscii = 0 End If End Sub Private Sub Form_Load() 'centraliza o formulário na área de trabalho do MDI: Me.Left = (frmBiblio.ScaleWidth - Me.Width) / 2 Me.Top = (frmBiblio.ScaleHeight - Me.Height) / 2 vCodEditora = 0 vCodCategoria = 0 vAcompCD = False vAcompDisquete = False vIdioma = 0 'Chama a procedure ComboEditoras e passa a combo cboEditora como 'parâmetro: 'aqui está o problema!!!! ComboEditoras cboEditora 'O mesmo para cboCategorias: ComboCategorias cboCategoria 'Garante que nenhum item esteja selecionado nas combos: cboEditora.ListIndex = -1 cboCategoria.ListIndex = -1 End Sub Private Sub optIdioma_Click(Index As Integer) 'Atribui à variável vIdioma o valor do parâmetro index, pois esse contém o 'índice do botão que foi clicado: 0 = Português, 1 = Inglês e 2 = Outros: vIdioma = Index End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 GravarDados Case 2 LimparTela Case 3 ExcluirRegistro Case 4 Unload Me End Select End Sub Private Sub txtCodLivro_LostFocus() Dim cnnComando As New ADODB.Command Dim rsSelecao As New ADODB.Recordset 'Dim vCod As Long Dim i As Integer On Error GoTo errSelecao 'Converte o código digitado para pesquisa: vCod = Val(txtCodLivro.Text) 'Se não foi digitado um código válido, sai da sub: If vCod = 0 Then Exit Sub Screen.MousePointer = vbHourglass 'Tenta selecionar o registro na tabela de livros: With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText .CommandText = "SELECT * FROM Livros WHERE CodLivro = " & vCod & ";" Set rsSelecao = .Execute End With With rsSelecao If .EOF And .BOF Then 'Se o recordset está vazio, não encontrou registro com esse código: LimparDados 'Identifica a operacao como inclusão: vInclusao = True Else 'Senão, atribui aos campos e variáveis auxiliares os dados do 'registro: txtTitulo.Text = !Titulo txtAutor.Text = !Autor vCodEditora = !CodEditora vCodCategoria = !CodCategoria vAcompCD = !AcompCD vAcompDisquete = !AcompDisquete vIdioma = !Idioma 'Como Observacoes não é um campo obrigatório, devemos impedir 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 'Como ListCount retorna o número de itens da combo, 'ListCount - 1 é igual ao índice do último item. Portanto, o 'loop abaixo será executado para todos os itens da combo 'através de seu índice: For i = 0 To (.ListCount - 1) If vCodEditora = .ItemData(i) Then 'Se ItemData for igual ao código atual, 'seleciona o item e sai do loop: .ListIndex = i Exit For End If Next i End With With cboCategoria .ListIndex = -1 For i = 0 To (.ListCount - 1) If vCodCategoria = .ItemData(i) Then .ListIndex = i Exit For End If Next i End With 'Se vAcompCD = True, marca chkAcompCD, senão desmarca: chkAcompCD.Value = IIf(vAcompCD, vbChecked, vbUnchecked) chkAcompDisquete.Value = IIf(vAcompDisquete, vbChecked, vbUnchecked) 'Marca o botão de opção correspondente ao idioma atual: optIdioma(vIdioma).Value = True '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 código: txtCodLivro.Enabled = False Saida: 'Elimina o command e o recordset da memória: Set rsSelecao = Nothing Set cnnComando = Nothing Screen.MousePointer = vbDefault Exit Sub errSelecao: With Err If .Number <> 0 Then MsgBox "Erro na recuperação do registro solicitado:", _ vbExclamation + vbOKOnly + vbApplicationModal, "Aviso" .Number = 0 GoTo Saida End If End With End Sub Private Sub LimparDados() 'Apaga o conteúdo dos campos do formulário: txtTitulo.Text = Empty txtAutor.Text = Empty txtObservacoes.Text = Empty 'Elimina a seleção das combos: cboEditora.ListIndex = -1 cboCategoria.ListIndex = -1 'Desmarca as caixas de verificação: chkAcompCD.Value = vbUnchecked chkAcompDisquete.Value = vbUnchecked 'Marca a opção Português em optIdioma: optIdioma(0).Value = True 'Reinicializa as variáveis auxiliares: vCodEditora = 0 vCodCategoria = 0 vAcompCD = False vAcompDisquete = False vIdioma = 0 End Sub [color="#FF0000"] ****** aqui que deu errado!!!!! ******* Private Sub GravarDados() Dim cnnComando As New ADODB.Command Dim vSQL As String Dim vCod As Long Dim vConfMsg As Integer Dim vErro As Boolean On Error GoTo errGravacao 'Converte o código digitado para gravação: vCod = Val(txtCodLivro.Text) 'Verifica os dados digitados: vConfMsg = vbExclamation + vbOKOnly + vbApplicationModal vErro = False If vCod = 0 Then MsgBox "O campo Código não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtTitulo.Text = Empty Then MsgBox "O campo Título não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtAutor.Text = Empty Then MsgBox "O campo Autor não foi preenchido.", vConfMsg, "Erro" vErro = True End If If vCodEditora = 0 Then MsgBox "Não foi selecionada uma Editora.", vConfMsg, "Erro" vErro = True End If If vCodCategoria = 0 Then MsgBox "Não foi selecionada uma Categoria.", vConfMsg, "Erro" vErro = True End If 'Se aconteceu um erro de digitação, sai da sub sem gravar: If vErro Then Exit Sub Screen.MousePointer = vbHourglass 'Constrói o comando SQL para gravação: If vInclusao Then 'Se é uma inclusão: vSQL = "INSERT INTO Livros " & _ "(CodLivro, Titulo, Autor, CodEditora, " & _ "CodCategoria, AcompCD, AcompDisquete, Idioma, Observacoes) VALUES (" & _ vCod & ",'" & _ txtTitulo.Text & "','" & _ txtAutor.Text & "','" & _ vCodEditora & "','" & _ vCodCategoria & "','" & _ vAcompCD & "','" & _ vAcompDisquete & "','" & _ vIdioma & "','" & _ txtObservacoes.Text & "');" Else 'Senão, alteração: vSQL = "UPDATE Livros SET Titulo = '" & txtTitulo.Text & _ "', Autor = '" & txtAutor.Text & _ "', CodEditora = " & vCodEditora & _ ", CodCategoria = " & vCodCategoria & _ ", AcompCD = " & vAcompCD & _ ", AcompDisquete = " & vAcompDisquete & _ ", Idioma = " & vIdioma & _ ", Observacoes = '" & txtObservacoes.Text & _ "' WHERE CodLivro = " & vCod & ";" End If 'Executa o comando de gravação: With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText .CommandText = vSQL .Execute End With MsgBox "Gravação concluída com sucesso.", _ vbApplicationModal + vbInformation + vbOKOnly, _ "Gravação OK" 'Chama a sub que limpa os dados do formulário: LimparTela Saida: Screen.MousePointer = vbDefault Set cnnComando = Nothing Exit Sub errGravacao: With Err If .Number <> 0 Then MsgBox "Erro durante a gravação dos dados no registro." & vbCrLf & _ "A operação não foi completada.", _ vbExclamation + vbOKOnly + vbApplicationModal, _ "Operação cancelada" .Number = 0 GoTo Saida End If End With End Sub [/color] Private Sub txtAutor_LostFocus() 'Converte a primeira letra de cada palavra digitada em maiúscula, 'e as demais em minúsculas: txtAutor.Text = StrConv(txtAutor.Text, vbProperCase) End Sub Private Sub txtTitulo_LostFocus() txtTitulo.Text = StrConv(txtTitulo.Text, vbProperCase) End Sub Private Sub ExcluirRegistro() Dim cnnComando As New ADODB.Command Dim vOk As Integer Dim vCod As Long On Error GoTo errExclusao 'Solicita confirmação da exclusão do registro: vOk = MsgBox("Confirma a exclusão desse registro?", _ vbApplicationModal + vbDefaultButton2 + vbQuestion + vbYesNo, _ "Exclusão") If vOk = vbYes Then Screen.MousePointer = vbHourglass 'Se confirmou, converte o código digitado: vCod = Val(txtCodLivro.Text) 'Executa a operação: With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText .CommandText = "DELETE FROM Livros WHERE CodLivro = " & vCod & ";" .Execute End With MsgBox "Registro excluído com sucesso.", _ vbApplicationModal + vbInformation + vbOKOnly, _ "Exclusão OK" LimparTela End If Saida: Screen.MousePointer = vbDefault Set cnnComando = Nothing Exit Sub errExclusao: With Err If .Number <> 0 Then MsgBox "Erro durante a exclusão do registro." & vbCrLf & _ "A operação não foi completada.", _ vbExclamation + vbOKOnly + vbApplicationModal, _ "Operação cancelada" .Number = 0 GoTo Saida End If End With End Sub Private Sub LimparTela() LimparDados Toolbar1.Buttons(3).Enabled = False txtCodLivro.Text = Empty txtCodLivro.Enabled = True txtCodLivro.SetFocus End Sub
×
×
  • Criar Novo...