Macêdo
-
Total de itens
303 -
Registro em
-
Última visita
Posts postados por Macêdo
-
-
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.
-
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 ?
-
Set rs= base.OpenRecordset("Select *from rs order by data, id")
-
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
-
Jonatan, muito obrigado cara, deu certo, poderia me explicar o que aconteceu ? porque colocando tostring não gerou mais erro de nulo ?
-
Como posso identificar nulo no .NET ? no VB 6.0 fazia o seguinte:
V = iif(isnull(rs(0),"",rs(0)
no .NET tentei identificar um nulo no datareader:
V = iif(isnull(Dr(0),"",Dr(0) mas vi que isnull não existe no NET
-
A data de hoje menos 7 dias dará sempre o mesmo dia da semana anterior
Private Sub Form_Load() Text1.Text = Date - 7 End Sub
-
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;"
-
Valeu QuinteLab, vou explorar esta possibilidade, brigado.
-
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.
-
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
-
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.
-
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 conexaoPrivate 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 formPrivate 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 registrosPrivate 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 ?
-
com a conexão aberta, no exemplo abaixo a conexão é (cnn) altera-se o tipo do campo para integer
Private Sub alterar_tipo_de_campo_em_tabela() sSQL = "ALTER TABLE nome_da_tabela ALTER COLUMN nome_do_campo integer;" cnn.Execute sSQL cnn.Close End Sub
-
Com as linhas abaixo você exclui o indice do BD Access, o tratamento de erro é para caso não exista um indice com o nome informado não aconteça o erro de Run Time
Private Sub excluir_indice() On Error GoTo indice_nao_existe sSQL = "drop index nome_do_index on nome_da_tabela;" cnn.Execute sSQL indice_nao_existe: If Err.Number = 2147217887 Then End If End Sub
-
Use a instruçao ADD COLUNM
'executa a sub da conexao
Private Sub Form_Load() conectar End Sub
'string de conexaoPrivate 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 tabelaPrivate Sub Command1_Click() adicionar_campo_na_tabela End Sub
'adiciona os campos Notas1 e Notas2 na tabela alunosPrivate 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
-
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 tabelaPrivate Sub Command1_Click() excluir_tabela End Sub
'string de conexaoPrivate 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 contatosPrivate 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
-
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 camposPrivate Sub Command1_Click() criar_tabela_campos End Sub
'sub com a string de conexaoPrivate 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 NomePrivate 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
-
Obrigado Patrique!
-
Use o Keypress:
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0 End If End Sub
-
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á.
-
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.
-
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
-
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
VB6 Adodc
em Visual Basic
Postado · Editado por Macêdo
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
depois no load do form onde esta o ADODC coloqueAssim o ADODC sempre buscara o banco onde ele foi instalado junto ao EXE