Ir para conteúdo
Fórum Script Brasil

Girréis

Membros
  • Total de itens

    33
  • Registro em

  • Última visita

Posts postados por Girréis

  1. Prezados,

     

    Estou aprendendo a trabalhar com banco de dados, e estou tentando importar dados do arquivo excel para access 2003 tanto manual como em script e como faço isso?

     

    E mais, os dados em excel estão com apenas uma coluna e várias linhas separados por ;

     

    Segue em anexo uma foto do arquivo em excel.

     

    obrigado pessoal.

    entrega.png

  2. Prezados, Amigos.

    Estou com uma dúvida, criei um banco chamado Teste e com faço para importar os dados de um arquivo texto cujo formato está da seguinte forma:

    Policy_Domain_Name                 Schedule_Name                      Associated_Nodes                                                
    ------------------------------     ------------------------------     ----------------------------------------------------------------
    PD_EX001                           BKP-EXC-DIARIO-RJ0000NT511-EXC                                                                     
    PD_EX001                           BKP-EXC-DIARIO-RJ0000NT512-EXC                                                                     
    PD_EX001                           BKP-EXC-DIARIO-RJ0000SR511-EXC     RJ0000SR511-EXC                                                 
    PD_EX001                           BKP-EXC-DIARIO-RJ0000SR512-EXC     RJ0000SR512-EXC                                                 
    PD_EX001                           BKP-EXC-DIARIO-RJ0000SR513-EXC     RJ0000SR513-EXC                                                 
    PD_EX001                           BKP-EXC-DIARIO-RJ0000SR514-EXC     RJ0000SR514-EXC

    Ainda não criei tabela, pois quero além de criar uma tabela, os campos acima tem que estar presentes ao importar.

    São mais 100 registros.

    Grato pela ajuda.

    Ramon

  3. Bom dia, amigos.

    ontem instalei o SP6 para que eu pudesse usar a sintaxe: .Orientation = rptOrientLandscape

    acontece que deu erro ao compilar, como faço para resolver esse problema?

    grato,

    girréis

    obs: segue a parte do código.

    erro:
    Compile error:
    
    Method or data member not found
    
    
    Private Sub cmdPrevia_Click()
    Dim vdescricao As Integer, filtro As String
    
    With DataReport1
        .Orientation = rptOrientLandscape
        
    For i = 1 To ListView1.ListItems.Count
        If ListView1.ListItems(i).Checked = True Then
            filtro = filtro & IIf(filtro <> "", " Or ", "") & " IDENTIFICACAO like '" & ListView1.ListItems(i) & "'"
        End If
    Next
    
        DataSubsistemas.rsCommand1.Filter = filtro
        .Show
       End With
    End Sub

    Encontrei no site da microsoft um trecho do erro acima, alguém pode me explicar?

    Microsoft Visual Studio 6.0 Service Pack 4 introduces a new property called Orientation for Data Report. The value for this property is:

    rptOrientDefault = 0

    rptOrientPortrait = 1

    rptOrientLandscape = 2

    With this property, you are able to tell the Data Report not to use the orientation setting of the default printer in the Printers Folders. Following is the syntax for implementing the Orientation property:

    DataReport1.Orientation = rptOrientLandscape

    DataReport1.Show

    When you use this new Orientation property in Visual Studio 6.0 Service Pack 4, you may encounter the error below:

    Compiler Error

    Method or Data member not found.

    To fix this error, delete the values for DataMember and DataSource properties of the Data Report and reassign these two properties with the original values.

    valeu,

    girréis

  4. Obrigado, Macêdo!

    deu certo, aprendi!

    mas agora como implemento para que imprima os que foram selecionados?

    grato,

    Girreis

    Macêdo,

    ficou jóia, consegui implementar para imprimir conforme a filtragem.

    segue o código abaixo:

    Private Sub cmdPrevia_Click()
    Dim vdescricao As Integer
    For i = 1 To ListView1.ListItems.Count
        If ListView1.ListItems(i).Checked = True Then
            'MsgBox "selecionado"
            vdescricao = MsgBox("Itens selecionados: " & ListView1.ListItems(i), vbOKOnly, "informações")
            Label1.Caption = "deu certo"
            DataSubsistemas.rsCommand1.Filter = " IDENTIFICACAO like '" & ListView1.ListItems(i) & "'"
            DataReport1.Show
    
            
        End If
    Next
    
    End Sub

    Acontece que se eu seleciono mais de um item, ele só apresenta a impressão do primeiro item selecionado!

    como contorno isto? se quero que imprima apenas 2 itens, ele tem que visualizar 2 itens antes de imprimir, tem como resolver isto?

    Grato,

    Girreis

    Alguém pode me auxiliar?

    como devo proceder?

    Girreis

  5. Kuroi,

    consegui fazer com listview, segue abaixo o código, ok?

    uma pergunta: estou tentando implementar no botão prévia (cmdprevia_click) que ao clicar ele lista num msgbox os itens que foram clicados, mas não está dando certo, poderia me ajudar?

    segue o código:

    Option Explicit
    Dim vCodIdentificacaoSubsistema As Long
    Dim vCod As String
    Dim cnnComando As New ADODB.Command
    Dim rsSelecao As New ADODB.Recordset
    Dim i As Integer
    
    Private Sub cmdFechar_Click()
    
        Unload Me
        
    End Sub
    
    Private Sub Form_KeyPress(KeyAscii As Integer)
        
        'Se a tecla Enter foi pressionada, passa o foco para o 
    
    próximo controle na
        'seqüência de TabIndex:
        If KeyAscii = vbKeyReturn Then
            SendKeys "{Tab}"
            KeyAscii = 0
        End If
        
    End Sub
    Private Sub Form_Load()
    Dim vCod2 As String
        
        'Centraliza o formulário na área de trabalho do MDI:
        Me.Left = (frmSistControle.ScaleWidth - Me.Width) / 2
        Me.Top = (frmSistControle.ScaleHeight - Me.Height) / 2
        
        'Screen.MousePointer = vbHourglass
        With cnnComando
            .ActiveConnection = cnnBancoSCS
           ' .CommandType = adCmdText
            'Monta o comando SELECT para selecionar o registro 
    
    na tabela:
           ' .CommandText = "SELECT * FROM ConsultaSubsistemas 
    
    ORDER BY identificacao;"
           ' Set rsSelecao = .Execute
        End With
        
        'carrega list
        CarregamentoListView
        Label1.Caption = ""
    
    End Sub
    
    Private Sub cmdPrevia_Click()
    For i = 0 To ListView1.ListItems.Count
        If ListView1.ListItems(i).Checked = True Then
            MsgBox "selecionado"
            Label1.Caption = "deu certo"
        End If
    Next
    
    End Sub
    Public Sub CarregamentoListView()
    Dim IdLst As ListItem
    'Dim i As Integer
    
        'abre o recordset
        With cnnComando
            .ActiveConnection = cnnBancoSCS
            .CommandType = adCmdText
            'Monta o comando SELECT para selecionar o registro 
    
    na tabela:
            .CommandText = "SELECT * FROM ConsultaSubsistemas 
    
    ORDER BY identificacao;"
            Set rsSelecao = .Execute
        End With
        'limpa o listview
        ListView1.ColumnHeaders.Clear
        ListView1.ListItems.Clear
        'define se irá aparecer um checkbox para listar
        ListView1.Checkboxes = True
        'mostrar as linhas do grid
        ListView1.GridLines = True
        'define para selecionar a linha inteira
        ListView1.FullRowSelect = True
        'define o tipo de listview
        ListView1.View = lvwReport
        ListView1.ColumnHeaders.Add , , "", 300
        ListView1.ColumnHeaders.Add , , "Nome", 3000, 
    
    lvwColumnCenter
        Do Until rsSelecao.EOF
            Set IdLst = ListView1.ListItems.Add(, , 
    
    rsSelecao!identificacao)
            If Not IsNull(rsSelecao!identificacao) Then
                If Not IsNull(rsSelecao!identificacao) Then 
    
    IdLst.SubItems(1) = rsSelecao!identificacao
            End If
            rsSelecao.MoveNext
        Loop
        'fecha o recordset
        rsSelecao.Close
        Set rsSelecao = Nothing
    End Sub

    o que achou? aqui deu certo, mas só falta aprender a exibir a mensagem com os itens que foram clicados!

    será que você consegue me dar um help?

    Valeu,

    Girreis

  6. Kuroi,

    o que você postou, é exatamento o que está dando erro: o temp2 armazena o último dado selecionado pela linha e não na caixa de seleção.

    acontece o que quero é que depois de finalizar a seleção dos itens, irei clicar em um botão que irá visualizar a impressão com os itens selecionados.

    não sei se esta função (o uso do listbox) permite isso, se não for poderia ser o listview, mas o problema é que não sei seu formato e como usar para se conectar ao banco de dados.

    eu te mandei um e-mail para que você averigue, usando um banco de dados qualquer.

    um abraço,

    girreis

  7. Macêdo,

    não consegui implementar, segue abaixo parte do código, veja o que precisa ser implementado.

    Grato,

    Girreis

    Option Explicit
    Dim vCodIdentificacaoSubsistema As Long
    Dim vCod As String
    Dim cnnComando As New ADODB.Command
    Dim rsSelecao As New ADODB.Recordset
    
    Private Sub cmdFechar_Click()
    
        Unload Me
        
    End Sub
    
    Private Sub Command1_Click() - é aqui que estou tentando implementar!
    Dim temp, temp2 As String
    Dim i As Integer
    
    For i = 0 To ListaFornecedores.ListCount - 1
    If ListaFornecedores.Selected(i) Then
    temp2 = ListaFornecedores.Text (temp2 = ListaFornecedores.List(i))
    
    End If
    Next
    
    End Sub
    
    'Dim vCodFornecedor As Long
    Private Sub Form_KeyPress(KeyAscii As Integer)
        
        'Se a tecla Enter foi pressionada, passa o foco para o próximo controle na
        'seqüência de TabIndex:
        If KeyAscii = vbKeyReturn Then
            SendKeys "{Tab}"
            KeyAscii = 0
        End If
        
    End Sub
    Private Sub Form_Load()
    Dim vCod2 As String
        
        'Centraliza o formulário na área de trabalho do MDI:
        Me.Left = (frmSistControle.ScaleWidth - Me.Width) / 2
        Me.Top = (frmSistControle.ScaleHeight - Me.Height) / 2
        
        'Screen.MousePointer = vbHourglass
        With cnnComando
            .ActiveConnection = cnnBancoSCS
            .CommandType = adCmdText
            'Monta o comando SELECT para selecionar o registro na tabela:
            .CommandText = "SELECT * FROM ConsultaSubsistemas ORDER BY identificacao;"
            Set rsSelecao = .Execute
        End With
        With rsSelecao
            If .BOF = False Then
            While Not .EOF
            vCod2 = rsSelecao("identificacao")
            ListaFornecedores.AddItem vCod2
            rsSelecao.MoveNext
            Wend
            Else
                MsgBox "Banco de dados vazio!!!", _
                vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
                Unload frmRelatFornecedores
            End If
        End With
    
    End Sub

    Amigos,

    parece fácil mas me perdi, ou seja, tenho um formulário que contém uma lista que busca no banco de dados.

    e neste formulário existem 2 botões, um para fechar e outro para imprimir, mas acontece que não consegui implementar um código que permite imprimir os itens selecionados, usando opção multiselect na propriedade ListBox.

    Como podem notar, compliquei a situação.

    Espero receber algumas dicas.

    Grato,

    Girreis

  8. Bom dia, amigos

    Gostaria de saber como faço para implementar em uma listbox, que busca dados de um banco de dados e os dados já estão atualizados, um código que ao selecionar determinados itens e depois clicar no botão imprimir, ele só imprime os itens que foram selecionados.

    Há alguma forma de implementar isto? Tenho um relatório pronto e apenas quero passar as informações dos itens selecionados para que seja impresso.

    Grato pela atenção,

    Girreis.

  9. Kuroi,

    não sei qual o erro, mas irei postar.....

    mas engraçado o uso do select apenas seleciona a linha, mas como faço para desabilitar a seleção da linha e apenas habilitar as caixas de verificação para que eu possa marcar as caixas que preciso?

    Girréis

    Kuroi,

    qual é o seu e-mail para que possa te mandar o arquivo do formulário em questão.

    Girréis.

    Kuroi,

    dei uma verificada, não ficaria melhor usando o Listview com checkbox?

    não sei usar esta função, me ajuda? voce tem algum exemplo disso ou apostila?

    valeu,

    Girreis

  10. Kuroi,

    quando selecionando um item check, ele fica marcado não é?

    então no listbox usando a opção checkbox é idêntico ao checkbox, o problema é que se eu não quiser marcar a caixa e apenas selecionando a linha com o mouse ou botão da setas do teclado, ao clicar no botão "command" e começar a fazer a verificação selecionando no código para apertar o F8, você verá que a variável temp2 está com a informção da última linha selecionada e não os que estão marcados.

    será que consegui explicar.

    girreis

  11. Boa tarde, amigos.

    Gostaria de auxílio em relação a um programa que estou implementando e a situação é a seguinte:

    No formulário (não consigo anexar o arquivo de imagem), tem uma listbox com opção de checkbox, e 3 botões; a idéia é que ao clicar nos item em que quero que imprima e depois clicar no botão prévia, que abrirá uma janela de visualização do que será impresso, portanto o botão Command1 é um pequeno teste que estou tentando fazer para que passa o parâmetro texto do listbox com a caixa selecionada, mas o erro que está dando é que só passa o parâmetro texto quando uma linha for selecionada, então não é isso que quero se seja feito.

    Como faço para resolver este problema? Alguém têm uma sugestão?

    Segue abaixo o código para análise.

    Grato,

    Girréis

    Option Explicit
    Dim vCodIdentificacaoSubsistema As Long
    Dim vCod As String
    Dim cnnComando As New ADODB.Command
    Dim rsSelecao As New ADODB.Recordset
    
    Private Sub cmdFechar_Click()
    
        Unload Me
        
    End Sub
    
    Private Sub Command1_Click()  -> [size="6"]AQUI ESTÁ O PROBLEMA[/size]
    Dim temp, temp2 As String
    Dim i As Integer
    
    For i = 0 To ListaFornecedores.ListCount - 1
    If ListaFornecedores.Selected(i) Then
    temp2 = ListaFornecedores.Text
    End If
    Next
    
    End Sub
    
    'Dim vCodFornecedor As Long
    Private Sub Form_KeyPress(KeyAscii As Integer)
        
        'Se a tecla Enter foi pressionada, passa o foco para o próximo controle na
        'seqüência de TabIndex:
        If KeyAscii = vbKeyReturn Then
            SendKeys "{Tab}"
            KeyAscii = 0
        End If
        
    End Sub
    Private Sub Form_Load()
    Dim vCod2 As String
        
        'Centraliza o formulário na área de trabalho do MDI:
        Me.Left = (frmSistControle.ScaleWidth - Me.Width) / 2
        Me.Top = (frmSistControle.ScaleHeight - Me.Height) / 2
        
        'Screen.MousePointer = vbHourglass
        With cnnComando
            .ActiveConnection = cnnBancoSCS
            .CommandType = adCmdText
            'Monta o comando SELECT para selecionar o registro na tabela:
            .CommandText = "SELECT * FROM ConsultaSubsistemas ORDER BY identificacao;"
            Set rsSelecao = .Execute
        End With
        With rsSelecao
            If .BOF = False Then
            While Not .EOF
            vCod2 = rsSelecao("identificacao")
            ListaFornecedores.AddItem vCod2
            rsSelecao.MoveNext
            Wend
            Else
                MsgBox "Banco de dados vazio!!!", _
                vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
                Unload frmRelatFornecedores
            End If
        End With
    
    End Sub
    
    Private Sub ListaFornecedores_Click()
    Dim temp As String
    
    End Sub

  12. Boa noite, amigos

    Como faço para inserir um campo com datas para o Access?

    Pois tenho um formulário em que digito os dados, como nome, endereço, data de nascimento e data atual, e quando clico no botão cadastrar, ele cadastra no banco de dados, mas quando visualizo tanto no Access quanto no VB e aparece com outro tipo de data, exemplo, se eu digito 20/06/2007 ele aparece no Access e no formulário de consulta no VB como sendo 30/12/1899.... estranho, o que deve estar faltando?

    Private Sub cmdOK_Click()
    Dim cnnComando As New ADODB.Command
    Dim vCodLivro, vCodUsuario As Long
    Dim vDataEmprestimo, vDataDevolucao As Date
    Dim vConfMsg As Integer
    Dim vErro As Boolean
        On Error GoTo errGravacao
        'Converte os dados digitados:
        vCodLivro = Val(txtCodLivro.Text)
        vCodUsuario = Val(txtCodUsuario.Text)
        vDataEmprestimo = CDate(txtDataEmprestimo.Text)
        vDataDevolucao = CDate(txtDataDevolucao.Text)
        'Verifica os dados digitados:
        vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
        vErro = False
        If vCodLivro = 0 Then
            MsgBox "O campo Código do Livro não foi preenchido.", vConfMsg, "Erro"
            vErro = True
        End If
        If lblTitulo.Caption = Empty Then
        'Se lblTitulo estiver em branco, o código do livro informado não foi
        'encontrado na tabela:
            MsgBox "O campo Código do Livro não contém um dado válido.", _
                    vConfMsg, "Erro"
            vErro = True
        End If
        If vCodUsuario = 0 Then
            MsgBox "O campo Código do Usuário não foi preenchido.", vConfMsg, "Erro"
            vErro = True
        End If
        If vDataEmprestimo >= vDataDevolucao Then
            MsgBox "A Data de Devolucao informada é menor ou igual à Data de " & _
                    "Empréstimo, verifique.", 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
        'Executa a SP de devolução de livros:
        With cnnComando
            .ActiveConnection = cnnBiblio
            .CommandType = adCmdText
            .CommandText = "UPDATE Livros SET CodUsuario = " & vCodUsuario & _
                    ", Emprestado = True, DataEmprestimo = " & vDataEmprestimo & _
                    ", DataDevolucao = " & vDataDevolucao & " WHERE CodLivro = " & _
                    vCodLivro & ";"
            .Execute
        End With
        MsgBox "Esse livro foi emprestado a " & lblNomeUsuario & " com sucesso.", _
                vbApplicationModal + vbInformation + vbOKOnly, "Empréstimo OK"
        'Chama a subrotina cmdCancelar_Click para limpar os campos do formulário:
        cmdCancelar_Click
        
    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 devolução desse livro não foi completada.", _
                        vbExclamation + vbOKOnly + vbApplicationModal, _
                        "Empréstimo cancelado"
                .Number = 0
                GoTo Saida
            End If
        End With
        
    End Sub
    Private Sub txtDataEmprestimo_LostFocus()
    Dim vDataDevolucao As Date
        With txtDataEmprestimo
            If .Text <> Empty Then
                'Verifica se o dado digitado pode ser uma data:
                If Not IsDate(.Text) Then
                'Se o dado digitado não pode ser uma data, assume a do sistema:
                .Text = Date
            Else
                'Senão, formata a data digitada:
                .Text = Format(.Text, "Short Date")
            End If
            'Atribui à caixa txtDataDevolucao a data digitada + 15 dias:
            vDataDevolucao = CDate(.Text) + 15
            txtDataDevolucao.Text = Format(vDataDevolucao, "Short Date")
            End If
        End With
        
    End Sub

    grato pela atenção,

    Girréis

  13. Kuroi,

    me explica melhor onde tirar as aspas?

    e tenho que trocar True por Verdadeiro?

    Girréis

    mas eu já te passei o codigo do insert certinho como tem que ficar já sem as aspas e já com esse problema do verdadeiro corrigido.

    bom, mas eu tava me referindo às aspas simples que você estava pondo nos campos Sim/Não. Eles devem ser gravados sem aspas (apesar de que se você passar 0/1 o access aceita com aspas, mas não sei quanto aos otros bancos).

    exemplo:

    Insert Into Tabela(Campo) Values(True) //está certo
    Insert Into Tabela(Campo) Values('True') //está errado

    agora quanto ao negocio do Verdadeiro, é justamente o contrario. o VB estava trocando True por Verdadeiro, e isso é errado. você concatenando com o CStr() resolve. olha o insert que eu te passei no otro post, ele deve funcionar (pelo menos essa parte do Sim/Não não deve mais dar problemas).

    Kuroi,

    agora entendi o funcionamento.... deu certo!

    obrigadão!

    Girréis

  14. não, ela tem pelo menos dois erros.

    primeiro - as aspas, já falei pra tirar naqueles dois campos.

    segundo - o Visual Basic esta convertendo o valor boolean na concatenacao. em vez de escrever "True", ele esceve "Verdadeiro".

    tente fazer o insert assim, e veja se funciona:

    vSQL = "INSERT INTO Livros " & _
                "(CodLivro, Titulo, Autor, CodEditora, " & _
                "CodCategoria, AcompCD, AcompDisquete, Idioma, Observacoes) VALUES (" & _
                vCod & ",'" & _
                txtTitulo.Text & "','" & _
                txtAutor.Text & "','" & _
                vCodEditora & "','" & _
                vCodCategoria & "'," & _
                CStr(vAcompCD) & "," & _
                CStr(vAcompDisquete) & ",'" & _
                vIdioma & "','" & _
                txtObservacoes.Text & "');"

    apesar de que seria mais facil pegar o value do checkbox direto em vez de por em variavel.

    e depois, você também tem que por o CStr() no Uptade.

    veja ai se funciona

    Kuroi,

    me explica melhor onde tirar as aspas?

    e tenho que trocar True por Verdadeiro?

    Girréis

  15. cara, você tentou executar o conteudo do vSQL direto no banco?? tipo, o problema não deve ser do True/False, não. de teste criei um banco aqui cum um campo Sim/Não, executei o seguinte codigo:

    Dim x As New Connection
        
        x.Provider = "Microsoft.Jet.OLEDB.4.0"
        x.ConnectionString = "Banco.mdb"
        
        x.CursorLocation = adUseClient
        x.Open
        
        x.Execute "Insert Into a(a) Values(1)"
        x.Execute "Insert Into a(a) Values(True)"
    e os dois inserts funcionaram certinho. tipo, sabe a linha do execute?? clica nela e aperta F9. então rode o programa (F5). quando chegar la, aperte Ctrl + G pra mostrar a janelinha do Immediate. nela, digite
    ? vSQL

    copie o conteudo que vai aparecer e tente executar direto no access. se der erro, ele deve apontar (vai parar o cursor em cima) o campo que esta errado.

    Kuroi,

    executei o que me instruiu e a saída do immediate foi?

    INSERT INTO Livros (CodLivro, Titulo, Autor, CodEditora, CodCategoria, AcompCD, AcompDisquete, Idioma, Observacoes) VALUES (1,'Teste','Testes','1','2','Verdadeiro','Falso','1','testtse');

    ao meu ver está certo, não é?

    Girréis

×
×
  • Criar Novo...