Ir para conteúdo
Fórum Script Brasil

Macêdo

Membros
  • Total de itens

    303
  • Registro em

  • Última visita

Posts postados por Macêdo

  1. você precisa alterar o diretorio do banco de dados no ADODC, por exemplo:

    você criou o projeto onde o Banco estava em C:\meus documentos\meu projeto\BD.mdb

    Então quando você cria o setup e instala o programa em outro micro o controle ADODC vai procurar o Banco de dados no mesmo diretorio, ou seja, em: C:\meus documentos\meu projeto\BD.mdb

    você precisa colocar um codigo para informar ao ADODC onde está o banco de dados, minha opinião, abra uma conexão e no FORM passe esta conexão para o ADODC

    utilize a seguinte conexão: precisará inserir a referencia à biblioteca Microsoft ActiveX Data Objects 2.8 Library

    public cnn as New ADODB.Connetion
    
    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _
    "data Source = " & App.Path & "\BANCO_DADOS.mdb;"
    cnn.CursorLocation = adUseClient
    cnn.Open
    depois no load do form onde esta o ADODC coloque
    Private Sub Form_Load()
    Adodc1.ConnectionString = cnn
    End Sub

    Assim o ADODC sempre buscara o banco onde ele foi instalado junto ao EXE

  2. Feche apenas a conexão do DataEnvironment no Terminate ou no Deactivate do datareport, assim quando chamar o relatorio novamente o mesmo fará outra conexão aparecendo os dados novos

    Private Sub DataReport_Deactivate()
    
    DataEnvironment1.Connection1.Close
    set dataenvironment1 = nothing
    
    End Sub

    faz tempo que usei, mas funcionava certinho, como tem muito tempo que deixei de usar o dataenvironment verifique o codigo alterando o nome de seu componente, atenção para o evento, deve ser no evento do DATAREPORT e não do FORM, com o datareport na tela dê 2 DOIS clicks nele, como se fosse o form e então abrirá a tela de eventos do DATAREPORT.

  3. Pessoal, usava o VS 2005 Express que era em inglês, então fui baixar o VS 2008 Express e na hora de baixar o instalador coloquei Espanhol achando que viria apenas o instal nesta lingua, então depois de instalado vi que o VB 2008 estava todo em espanhol, os menus etc...como não era isto que queria desinstalei e baixei novamente selecionando a linguagem Inglês, porem após instalar e abrir o VB novamente o mesmo continuou em Espanhol, como posso resolver isto ?

  4. você pode fazer qualquer coisa no word pelo VB, tanto abrir um documento existente alterando onde for necessário como criando um novo documento word e inserir dados do seu BD nele. Para tanto adicione a referencia ao Word no Project References, exemplos:

    Menu Project references:

    Microsoft word 12.0 Object Library

    Depois de adicionar a referencia utilize o codigo abaixo num botão para teste:

    Private Sub Command1_Click()
    Dim Worddoc As New Word.Application
    Worddoc.Documents.Add
    Worddoc.Visible = True
    With Worddoc
        
      .Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
      .Selection.Font.Size = 12
      .Selection.TypeText Text:="Texto para teste"
      .Selection.TypeParagraph
      .Selection.TypeText Text:="Texto para outro teste"
    End With
    End Sub

    você pode jogar os dados do seu BD para confeccionar contratos, cartas etc....são inumeras as possibilidades de se trabalhar, você poderá fazer toas as configurações pelo VB, Criar Rodapés, cabeçalhos, tamanhos de texto, alinhamento tudo ´´e possivel pelo VB

  5. Depende se for o MySQL:

    Local

    cnn.Open "DRIVER={MySQL ODBC 3.51 Driver};database=BD;Server=localhost;user=root;pwd=Minha_senha;port=3306"

    Em rede utiliza-se o IP na conexão

    cnn.Open "DRIVER={MySQL ODBC 3.51 Driver};database=BD;ip=11.0.111.2;user=root;pwd=minha_senha;port=3306"

    Se for Access

    Local

    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _

    "data Source = " & App.Path & "\BD.mdb;"

    Em rede coloque o banco numa pasta compartilhada e coloque o endereço desta pasta em Data Source

    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _

    "data Source = C:\caminho\BD.mdb;"

  6. O que gostaria de saber é se tem como preencher um datagridview desta mesma forma que utilizo para preencher o ListView, com um Laço, SEM utilizar a propriedade DATASOURCE, tem como ? Um outro exemplo é como o VB6.0 o controle MsHflexGrid podemos preenche-lo tanto settando a propriedade DATASOURCE como podemos preenche-lo com um FOR ou um Do While no recordset sem necessidade da propriedade DATASOURCE.

  7. Algem tem exemplo de como preencher um DATAGRIDVIEW com um DATAREADER ? gostaria de usar o DATAGRIDVIEW com o codigo abaixo que estou usando com um LISTVIEW, pois usando o DATADAPTER não vi como criar uma coluna independente como a que crio após a ultima no LIST usando dados de dois FIELD's da mesma coluna do DATAREADER,vjam que efetuo calculo ente dois itens do DATAREADER criando o ultimo subitnem do LIST

    Private Sub listview_inadimplencia_municipio()
    
            Dim cmd As OleDb.OleDbCommand = cnn.CreateCommand
    
            cmd.CommandText = "select data, municipio, operacoes, " & _
            "contratado, devedor, atraso, prejuizo " & _
            "from resumo order by data desc"
    
            Dim leitor As OleDb.OleDbDataReader = cmd.ExecuteReader
    
            'leitor.Read()
            ListView1.Clear()
            'modo de visao 
            ListView1.View = View.Details
            ' permite o usuario editar o item
            ListView1.LabelEdit = False
            ' permite o usuario rearranjar as colunas
            ListView1.AllowColumnReorder = True
            ' exibe as caixas de marcacao (check boxes.)
            ListView1.CheckBoxes = False
            ' seleciona um item e subitem quando a seleção é feita
            ListView1.FullRowSelect = True
            ' exibe as linhas
            ListView1.GridLines = True
            ' ordena os itens na list na ordem ascendente
            ListView1.Sorting = SortOrder.Ascending
            'cria as colunas 
            With ListView1
                .Columns.Add("Data", 80, HorizontalAlignment.Left)
                .Columns.Add("Município", 150, HorizontalAlignment.Left)
                .Columns.Add("Operações", 80, HorizontalAlignment.Center)
                .Columns.Add("Contratado", 100, HorizontalAlignment.Right)
                .Columns.Add("Devedor", 100, HorizontalAlignment.Right)
                .Columns.Add("Atraso", 100, HorizontalAlignment.Right)
                .Columns.Add("Prejuízo", 100, HorizontalAlignment.Right)
                .Columns.Add("Inadimplência", 80, HorizontalAlignment.Center)
            End With
            ' percorre a tabela e exibe todos os dados no listview
            While leitor.Read
                Dim data As String = Format(leitor.Item(0), "dd/MM/yyy")
                Dim ls As New ListViewItem(data, 0)
                ls.SubItems.Add(leitor.Item(1))
                ls.SubItems.Add(leitor.Item(2))
                ls.SubItems.Add(Format(leitor.Item(3), "currency"))
                ls.SubItems.Add(Format(leitor.Item(4), "currency"))
                ls.SubItems.Add(Format(leitor.Item(5), "currency"))
                ls.SubItems.Add(Format(leitor.Item(6), "currency"))
                ls.SubItems.Add(Format((leitor.Item(5) / leitor.Item(4)) * 100, "standard") & "%")
                ListView1.Items.Add(ls)
            End While
    
        End Sub
        Private Sub Form_analise_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
        End Sub
    
    
  8. Realmente, deixei esta duplicidade, mas não estava assim, isto aconteceu numa das muitas vezes que tentei fazer mudanças no codigo.

    O erro mesmo acontece quando tento abrir e fechar a conexão a cada procedimento, mas quando abro a conexão com o LOAD do MDI e deixo-a aberta não gera mais o erro, consigo trabalhar nos outros forms, fazer diversas interações com o BD e fecho a conexão no Deactivate do MDI

    Esta forma de proceder esta correta ou o melhor no .NET seria fechar a conexão e abrir a cada procedimento ? no VB6.0 eu sempre fiz do jeito que falei abro no iniciar do MDI e deixo aberta.

  9. Pessoal

    To começando e estou com o seguinte problema:

    No modulo declarei a conexao e a strng e criei as subs de para conectar e desconectar

    Module Module1
        Public cnn As New OleDb.OleDbConnection
        Public CAMINHO As String
        Public Sub conectar()
            CAMINHO = "C:\Arquivos de programas\PROGRAMAS TESTES\Express 2005\Sisloc\SISLOC.MDB"
            Dim cnn As New OleDb.OleDbConnection
            cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & CAMINHO & "'"
            cnn.Open()
        End Sub
    
        Public Sub desconectar()
            cnn.Dispose()
            cnn.Close()
            cnn = Nothing
        End Sub
    End Module
    No Load abro a conexao
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TextBox1.TabIndex = 0
            conectar()
        End Sub
    so fecho a con no fechar do form
    Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Deactivate
            desconectar()
            Me.Close()
            Me.Dispose()
        End Sub
    quando abro o form a primeira vez consigo incluir registros
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim cmd As OleDb.OleDbCommand = cnn.CreateCommand
            cmd.CommandText = "insert into clientes (nome) values ('" & Text2.Text & "')"
            Try
                cmd.ExecuteNonQuery()
                MsgBox("Registro incluido")
            Catch erro As Exception
                MsgBox("Erro " & vbCrLf & vbCrLf & erro.ToString)
            End Try
    
        End Sub

    Mas quando fecho o form e abro novamente da ERRO na conexao

    como concerto isto ?

  10. Use a instruçao ADD COLUNM

    'executa a sub da conexao

    Private Sub Form_Load()
    conectar
    End Sub
    'string de conexao
    Private Sub conectar()
    
    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _
    "data Source = " & App.Path & "\BD.mdb;"
    cnn.CursorLocation = adUseClient
    cnn.Open
    
    End Sub
    'executa a sub para criar os campos na tabela
    Private Sub Command1_Click()
    adicionar_campo_na_tabela
    End Sub
    'adiciona os campos Notas1 e Notas2 na tabela alunos
    Private Sub adicionar_campo_na_tabela()
    
    On Error GoTo campo_existe
    sSQL = "ALTER TABLE Alunos ADD COLUMN Notas1 TEXT(25), Notas2 TEXT(25);"
    cnn.Execute sSQL
    cnn.Close
    
    campo_existe:
    If Err.Number = 2147217887 Then
    End If

    End Sub

  11. Com a conexão aberta utilize o a instrução DROP TABLE para deletar uma tabela do Access

    'abrir a conexão

    Private Sub Form_Load()
    conectar
    End Sub
    'deleta a tabela
    Private Sub Command1_Click()
    excluir_tabela
    End Sub
    'string de conexao
    Private Sub conectar()
    
    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _
    "data Source = " & App.Path & "\BD.mdb;"
    cnn.CursorLocation = adUseClient
    cnn.Open
    
    End Sub
    'sub para excluir a tabela contatos
    Private Sub excluir_tabela()
    
    On Error GoTo nao_existe
    sSQL = "drop table contatos;"
    cnn.Execute sSQL
    
    nao_existe:
    If Err.Number = 2147217865 Then
    End If
    
    End Sub

  12. Com a conexão aberta, utilize a instruição CREATE TABLE para criar tabelas e seus campos no Access:

    'no load do form chamamos a sub para abrir a conexão

    Private Sub Form_Load()
    conectar
    End Sub
    'no click de um botão chamamos a sub para criar a tabela e seus campos
    Private Sub Command1_Click()
    criar_tabela_campos
    End Sub
    'sub com a string de conexao
    Private Sub conectar()
    
    cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _
    "data Source = " & App.Path & "\BD.mdb;"
    cnn.CursorLocation = adUseClient
    cnn.Open
    
    End Sub
    'codigo que cria a tabela (contatos) com os campos Cod e Nome
    Private Sub criar_tabela_campos()
    
    On Error GoTo existe
    
    sSQL = "CREATE TABLE Contatos (cod integer, nome text(150));"
    cnn.Execute sSQL
    
    existe:
    If Err.Number = 2147217900 Then
    End If
    
    End Sub

  13. Pessoal, são duas tabelas( socios e dependentes) com o select abaixo eu retorno todos os socios com e sem dependentes:

    .CommandText = " SHAPE {select socios.cod, socios.nome, " & _

    "socios.nascimento as nasc_socio, dependentes.nascimento, " & _

    "dependentes.cod_socio, dependentes.nome as dependente from " & _

    "socios left join dependentes on socios.cod = dependentes.cod_socio}" _

    & "AS Command1 COMPUTE Command1 BY nome, nasc_socio"

    Set rs = .Execute

    Agora preciso alterar para me trazer todos os socios, com ou sem depentes MAS, que na tabela SOCIOS o campo TIPO_SOCIO seja igual a uma certa STRING...

    Agradeço desde já.

  14. Michele

    Desculpa a demora na resposta, é que estava de ferias, viajando muito, mas é o seguinte:

    Pelo que vi ta tudo certo com as consultas, a unica diferença do excel pro access é que você não deve colocar desta forma:

    select campo1, campo2 from [tab$]

    no access faça simplesmente

    select campo1, campo2 from tab

    retire os sinais de [] e o $

    esta é a unica diferença nas consultas.

  15. Crie um Recordset e jogue o valor das variaveis neste recordset, depois mande para o datareport.

    Dim rs As New ADODB.Recordset

    rs.Fields.Append "Idade", adDouble, 5

    rs.Fields.Append "Nome", adVarChar, 50

    rs.Fields.Append "Telefone", adVarChar, 50

    rs.Open

    rs.AddNew

    rs(0) = Idade

    rs(1) = Nome

    rs(2) = Telefone

    With datareport1

    Set .DataSource = rs

    .DataMember = ""

    .Refresh

    .Show

    End With

  16. Private Sub Combo1_Click()
    
    If Combo1.ListIndex = 0 Then
    Combo2.Clear
    Combo2.AddItem "São Bernardo"
    Combo2.AddItem "Diadema"
    Combo2.AddItem "Juquitiba"
    ElseIf Combo1.ListIndex = 1 Then
    Combo2.Clear
    Combo2.AddItem "Auxiliar"
    Combo2.AddItem "Carregador"
    Combo2.AddItem "Contador"
    Else
    Combo2.Clear
    End If
    
    End Sub
    
    Private Sub Combo2_Click()
    
    If Combo2.Text = "Diadema" Then
    Combo3.Clear
    Combo3.AddItem "Farmácia"
    Combo3.AddItem "Armazem"
    Else
    Combo3.Clear
    Combo3.AddItem "Shopping"
    Combo3.AddItem "Bar"
    Combo3.AddItem "Farmácia"
    Combo3.AddItem "Armazem"
    End If
    
    End Sub
    
    Private Sub Form_Load()
    
    Combo1.Clear
    Combo2.Clear
    Combo3.Clear
    
    Combo1.AddItem "cargo"
    Combo1.AddItem "local"
    
    End Sub

×
×
  • Criar Novo...