
Macêdo
Membros-
Total de itens
303 -
Registro em
-
Última visita
Tudo que Macêdo postou
-
Baixe o MySQL 5.0 através do Link: http://superdownloads.uol.com.br/download/181/mysql/ Para baixar o Driver ODBC 3.51 para conectar o MySQL click no link: http://dev.mysql.com/get/Downloads/Connect...sline.de/mysql/ Depois de instalado o MySQL e o Driver ODBC 3.51 basta por num modulo: Public cnn As New ADODB.Connection e abrir a conexão assim: Private Sub Form_Load() cnn.CursorLocation = adUseClient cnn.Open "DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;user=root;pwd=Sua_senha;port=3306" End Sub ` Para aprender a criar sua base de dados, Tabelas, campos etc ...e mais sobre o MySQL acesse o Link: http://www.apostilando.com/sessao.php?cod=26 Após criar seu primeiro Banco de Dados basta acrescentar na linha de código que abre a conexão o nome de seu BD antecedido da instrução "database=" assim: Private Sub Form_Load() cnn.CursorLocation = adUseClient cnn.Open "DRIVER={MySQL ODBC 3.51 Driver};database=Meu_Banco;Server=localhost;user=root;pwd=Sua_senha;port=3306" End Sub Obs: existem interfaces graficas para trabalhar com o MySQL, porém acredito que quem saiba a linguagem SQL não terá problemas em criar suas Bases de Dados Pelo Prompt do (DOS)MySQL, foi a opção que achei melhor, realmente facil, mas pra quem não conhece ou está começando sugiro estudar um pouco sobre SQL. Se quiser criar a base de dados por sua aplicação VB aqui está um exemplo: [c]Public Sub CriarBanco_e_Tabela() On Error GoTo erro 'Instanciar Set con = New ADODB.Connection Set rs = New ADODB.Recordset '--------------- 'Criar BD ESTUDO '--------------- con.Open "DRIVER={MySQL ODBC 3.51 Driver};User=root;Password=admin;Server=localhost;Option=20499" 'Banco 'Estudo' con.Execute "CREATE DATABASE IF NOT EXISTS estudo;", , adExecuteNoRecords con.Close '-------------------- 'Criar tabela CLIENTE '-------------------- con.Open "DRIVER={MySQL ODBC 3.51 Driver};Database=estudo;User=root;Password=admin;Server=localhost;Option=20499" 'Tabela 'Cliente' sSQL = "CREATE TABLE IF NOT EXISTS Cliente (" _ & "Codigo int NOT NULL, " _ & "Nome varchar(100) NOT NULL, " _ & "Endereco varchar(100) NOT NULL, " _ & "Nascimento date NOT NULL, " _ & "PRIMARY KEY (Codigo) " _ & ") Type=InnoDB" con.Execute sSQL, , adExecuteNoRecords con.Close Exit Sub erro: MsgBox Err.Description End Sub Bons estudos
-
acessem o link abaixo e se informem melhor sobre bancos de dados: http://pt.wikipedia.org/wiki/Lista_de_banco_de_dados
-
o esquema é o seguinte gabriel: você deve carregar o recordset e deixa-lo aberto e então no botão de movimentação por o codigo movenext ou moveprevious que ele irá movimentar o recordset que está carregado, ou seja, você chama o select para carregar o recordset no evento Form_load e não põe rs = nothing nem rs.close para não fecha-lo assim o recordset fica carregado com os dados da tabela para você trabalhar com ele em outros eventos assim: Private sub Form_load() With cmd .ActiveConnection = Conex .CommandType = adCmdText .CommandText = " Select * From FinanWin_Cli " Set rs = .Execute End With End Sub Private Sub Cmd_PROXIMO_Click() With rs .MoveNext If .EOF Then .MoveLast txtCli_Cod.Text = rs("Cli_Cod") txtCli_NomeFantasia.Text = rs("Cli_NomeFantasia") End With End Sub Beleza ? Lembrando que o Recordset deve ser declarado no General Declarations do Form
-
banco de dados para VB 6.0 saindo do Access, qual ?
pergunta respondeu ao Macêdo de Macêdo em Visual Basic
Então acha melhor eu usar o PostgreSQL ? eu só não entendo direito este esquema do MySQL de ser ou não gratis, quando eu posso ter problemas com isso ? sendo que agente baixa ele, usa normalmente e ele não é demo, não expira, o FireBird também seria uma boa saida né ? pois pelo que me disseram em outro forum ele é realmente gratis, ou seja, posso desenvolver aplicações com ele e passar adiante que não terei problemas. -
Pessoal preciso mudar de base de dados, tenho utilizado o Access porém ele é pequeno para as aplicações que desenvolvo, só agora vi isto pois comecei a pouco menos de um ano, bom até agora foi satisfatorio ainda mais pela experiência que adquiri. Estava na duvida entre MySQL e FireBird e esta semana instalei o MySQL e fiz alguns testes, dá pra aproveitar quase todas minhas linhas de codigo que usava no Access, só vi diferença em campos data, tive que fazer algumas alterações, mas apenas na hora de usar o INSERT INTO, já com select's não da problema, ele é facil de criar a Base de Dados, tabelas, campos, etc.. gostei dele e pelo que tenho lido ele é mais seguro que o Access e suporta muito mais dados, porém estou em duvida pois sempre vejo falar do uso do MySQl com PHP que não sem bem o que é, e sempre falam do MySQl para uso na Internet e eu desenvolvo aplicações para Windos, Desktop, ou melhor dizendo programas de controles de dados etc... para no máximo serem usados em redes Locais, numa empresa, em meu caso, um BANCO. Ouço falar bastante no SQL SERVER e no PostgreSQL também, e estou aqui pedindo um conselho dos mais experientes para sanar esta minha duvida (obs: importante também que seja gratuito como o MySQL)
-
Beleza denis, show de bola, já consegui fazer a conexão com meu programa VB 6.0 e realmente o MySQL é perfeito para se atrabalhar com as instruções SQL assim como no Access, a diferença será na hora da instalação do Programa em outras máquinas com o pacote de instalação VB, pois terei que instalar o MySQl e criar a base de dados no computador do cliente, mas em sua opnião para criar programas para Windows, alguns dizem Desktop, você acha que o uso do MySQl é adequado ? pois vejo sempre o pessoal falar em uso do MySQL para internet, ou pode ser usado também para fins comerciais, digo, programas para controles de estoque de Lojas, programas pessoais, etc...
-
Uma pergunta para entender o funcionamento do MySQL, ainda não consegui acessa-lo pelo VB, mas mesmo assim achei interessante estuda-lo separadamente, consegui criar um BD através da instrução CREATE DATABASE no Prompt, assim como criei as tabelas e inseri campos. Agora a pergunta, como todo arquivo criado assim como no Excel, Word, Access procurei então pela DATABASE que criei no PROMPT e então vi que foi criada uma pasta dentro da pasta do MySQL, a qual ficou no seguinte caminho: C:\Arquivos de programas\MySQL\MySQL Server 5.0\data\bd_projetos Pergunta 1 : Toda DATABASE, ou seja, BD que eu criar será salvo nesta pasta "DATA" ?, tem como escolher no PROMPT onde salvar, ou onde criar o DATABASE ? Pergunta 2: dentro da pasta com o nome do BD que criei aparecem dois arquivos 1 - DB.opt 'este não sei 2 - Projetos 'este é o nome da Tabela Podem me passar o Fio da Meada para eu continuar com a leitura da Apostila com um pouco mais de Conhecimento ? desde já agradeço a todos. Atenciosamente; Jilney Macedo
-
alguém pode fazer uma sintese da diferença entre estas conexões ? pois sempre usei BD access com OLEDB e agora que estou migrando para MySQL só vejo exemplos de conecta-lo com ODBC é possivel com OLEDB tambem ? se for, qual a melhor das duas ?
-
Trabalho com VB e acabo de baixar o MySQL e gostaria de saber se existe uma ferramenta que ajude a criar uma base de dados, suas tabelas etc no MySQL no ambiente windows, pois pelo que achei no macoratti ou se faz isso com o prompt do DOS ou os que são indicados no macoratti são demos.
-
Galera trabalho com VB 6.0 e sempre utilizei o Access como BD e gostaria de mudar para o MySQL, primeiro gostaria da ajuda de vocês para baixar o MySQL pois quando entro no site mysql.com são tantos Link's e informações que fico perdido sem saber onde procurar para baixar. Agradeço desde já a atenção de todos
-
o código para que arrume em ordem crescente do campo que você quiser é o seguinte: Adodc1.Recordset.Sort = "campo" é só por no evento que você quiser Caso você esteja usando um DataGrid para mostrar os registros você pode colocar o seguinte codigo para que arrume os registros de acordo o Click que você der no cabeçalho do DataGrid, então ele arruma em ordem dos campos da coluna que escolheu, ponha o seguinte código no evento Head_Click do DataGrid como abaixo: Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer) adodc1.recordset.sort=adodc1.recordset.fields(colindex).name End Sub
-
Vamos lembrar também sobre o DIM que ele declara a variável que será usanda dentro de um comando, ou seja, variavel Local, exemplo: Private Sub Command2_Click() Dim RS as New ADODB.Recordset Dim vSOMA as Long ' Aqui posso fazer comandos para este recordset RS ou esta variavel SOMA End Sub As variáveis declaradas neste botão de comando serão usadas apenas neste botão de comando com o DIM, mas se declaramos dentro do General Declarations o comando DIM é local, porém as variaveis poderão ser usadas ou chamadas em qualquer outro objeto do Form, pois serão variáveis locais do Form: General Declarations Dim RS_outro as New ADODB.Recordset Private Sub preencher_combo() 'Posso usar o RS_outro AQUI nesta Sub, mas não posso usar a variavel SOMA nem o Recordset RS declarados dentro do Command_Buton mostrado acima End Sub Private Sub DataGrid1_Click 'Posso usar o RS_outro AQUI também, mas não posso usar a variavel SOMA nem o Recordset RS declarados dentro do Command_Buton mostrado acima End Sub Correto Kuroi ?
-
Sem componentes? desculpa perguntar mas você já usou VB alguma vez ou ta começando agora ? se não conhece o VB e não está visualizando a barra com os componentes básicos é só ir no menu View, que é a EXIBIR, e clicar em ToolBox, mas se quiser acrescentar outros componentes à Toolbox vá no menu Project no item Components e então é só escolher o componente que quiser acrescentar que cá pra nós são muitos.
-
O DUDU está corretissimo, é impossivel gravar dados sem utilizar o Objeto Command e a instrução .Execute ao final do Insert Into. O que me parece é que você tá misturando instruções CODIGO com Controle Vinculado, este " dosConP.Recodset.AddNew " me parece ser um comando de um ADODC ou um DataControl, se for tá explicado, pois após o comando "dosConP.Recodset.AddNew " de um Objeto Vinculado já prepara a tabela para receber os registros e grava direto sem precisar de nenhum outro comando, diz ai pra agente se tu ta usando Controles Vinculados ou não ? se tiver te dou um conselho: Deleta eles, é só problema. Depois de deleta-los agente continua com o estudo pra tu fazer a busca e para verificar os registro e Gravar no BD, de antemão vou passar como ficaria: Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset With cmd .ActiveConnection = Conex .CommandType = adCmdText .CommandText = " select * from FinanWin_ConP " Set rs = .Execute End With With rs .Filter = ConP_Cod Like '" & txtConP_Cod & "' AND ConP_NumParc Like '" & txtConP_NumParc & "' And ConP_NumDoc Like '" & txtConP_NumDoc & "' And ConP_Venc Like '" & txtConP_Venc & "'" If .BOF And .EOF Then With cmd .ActiveConnection = Conex .CommandType = adCmdText .CommandText = " insert into FinanWin_ConP " & _ "(ConP_Cod, ConP_NomeFantasia, ConP_NumParc, ConP_NumDoc, ConP_Venc, " & _ "ConP_DataEmissao, ConP_Valor, ConP_Obs, ConP_Boleto) VALUES ('" & _ txtConP_Cod.Text & ",'" & _ txtConP_NomeFantasia.Text & ",'" & _ txtConP_NumParc.Text & "','" & _ txtConP_NumDoc.Text & "','" & _ txtConP_Venc.Text & "','" & _ txtConP_DataEmissao.Text & "','" & _ txtConP_Valor.Text & "','" & _ txtConP_Obs.Text & "','" & _ txtConP_Boleto.Text & "');" .execute end With Else Msgbox "Registro já existe" Ou no lugar do Registro já existe você poderia ainda por uma mensagem tipo, gostaria de fazer alterações a este Registro, caso a resposta fosse SIM, colocaria uma instrução UPDATE
-
Option Button - "Navegação" nos registros
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
Gabriel tenta colocar um IF no retorno do RS, por exemplo: Após o select quando você jogar os valores do RS nas text's coloca o IF quando estiver marcado tal opção na Tabela marcar no OptionButon With cmd .ActiveConnection = cnn .CommandType = adCmdText .CommandText = " select * from tabela " Set RS = .Execute End With With RS If not(.BOF And .EOF) Then Text_DATA.Text = !Data Text_CPF.Text = !CPF Text_NOME.Text = !nome IF not isnull(RS!OPÇÂO1) then option1.value IF not isnull(RS!OPÇÂO2) then option2.value End if End if end if End With -
Você pode jogar o valor numa variavel String então o valor escolhido será a variavel a ser selecionada: Dim parametro as String 'declara a variavel parametro = Combo1.text 'valor escolhido na combo Set rstCarregachf = Nothing sQuery = "select a.agent_id, b.group_name from adm_agent_group a, adm_group b Where a.group_id = b.group_id and b.group_name = " & parametro & "
-
Veja este exemplo: http://scriptbrasil.com.br/forum/index.php?showtopic=105812 o seu deve ficar mais ou menos assim: DataEnvironment1.rsCommand1.filter = "pendente like '" & s & "'" DataReport1.show ou simplesmente DataEnvironment1.rsCommand1.filter = "pendente = 'S' DataReport1.show
-
Funcionou perfeitamente, só falta eu entender por completo para aumentar o conhecimento e me safar de outras dessas complicações Dim strFiltro As String ' criou uma variavel string para unir as informações para o FILTER strFiltro = "" ' creio que aqui você limpou a variavel para caso esteja vindo de um FILTER anterior If Combo1.Text <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "Campo1 Like '" & Combo1.Text & "'" ' e aqui ? End If If Combo2.Text <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "Campo2 Like '" & Combo2.Text & "'" End If ... ... If ComboN.Text <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "CampoN Like '" & ComboN.Text & "'" End If rs_relatorio.Filter = strFiltro Olha só, mesmo sem entender 100% segui a linha do código e implementei está PRONTO! Além de fazer os filtros de acordo as combos escolhidas ainda informa numa Label no relatório qual o tipo de Filtro feito, hehehehe ficou assim: Private Sub filtros() Dim strFiltro As String Dim strinfo As String strFiltro = "" If Combo_situacao <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "situacao Like '" & Combo_situacao.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_situacao.Text End If If Combo_atividade <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "atividade Like '" & Combo_atividade.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_atividade.Text End If If Combo_projetista <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "projetista Like '" & Combo_projetista.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_projetista.Text End If If Combo_municipio <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "municipio Like '" & Combo_municipio.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_municipio.Text End If If Combo_proponente <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "nome Like '" & Combo_proponente.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_proponente.Text End If If Combo_programa <> "TODOS" Then strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "porte Like '" & Combo_programa.Text & "'" strinfo = strinfo & IIf(strinfo <> "", " / ", "") & Combo_programa.Text End If rs_relatorio.Filter = strFiltro Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = strinfo End Sub Private Sub Command2_Click() filtros With Rpt_projetos Set .DataSource = rs_relatorio .DataMember = "" .Refresh .Show End With End Sub Valeu Kuroi!, se possível ainda aguardo a informação que falta para entender a linha: strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "atividade Like '" & Combo_atividade.Text & "'"
-
Acabo de postar uma dica que pode te ajudar: http://scriptbrasil.com.br/forum/index.php?showtopic=111049
-
1 - Crie um arquivo no Word, um modelo de carta, um contrato de aluguel..., o qual você irá sempre preencher apenas os campos (nome, endereço...) 2 - Ponha o cursor no local onde deve aparecer o conteúdo a ser preenchido (nome, endereço, telefone...) pelos dados do recordset que estarão visiveis nas textbox do form. 3 - Na carta ( Word) vá no menu inserir 4 - indicador, criar um nome de indicador e referenciar no comando abaixo na devida textbox) Private Sub Command1_Click() Dim objDoc As Word.Document Set objWord = New Word.Application objWord.Visible = True Set objDoc = objWord.Documents.Open(App.Path & "Nome_do_DOC.doc") objDoc.Activate objDoc.Bookmarks("Data").Range.Text = text1.text objDoc.Bookmarks("Numero").Range.Text = text2.text objDoc.Bookmarks("esquema").Range.Text = Text3.Text Set objDoc = Nothing Set objWord = Nothing End Sub Data, numero e esquema, são os indicadores criados no word quando clicar no botão os dados constantes nas text's serão impressos nos locais indicados no modelo do Word.
-
Pessoal, minha situação é a seguinte: Possuo um Form para fazer FILTROS numa tabela, neste FORM existem 6 COMBOS os quais 1 para cada campo da Tabela e cada COMBO possue inúmeros itens os quais serão a base para o FILTRO, meu código, de inicio está assim como mostrado abaixo, ENORME e nem sei quando irei terminá-lo. gostaria de saber se existe outra forma de fazer estes filtros, sendo que, da forma que estou fazendo precisarei saber todas as combinações possíveis que possam acontecer, assim: 1 - combo 1 <> todos 2 - combo 2 <> todos 3 - combo 3 <> todos 4 - combo 4 <> todos 5 - combo 5 <> todos 6 - combo 6 <> todos 7 - combos 1 e 2 <> todos 8 - combos 1 e 3 <> todos 9 - combos 1 e 4 <> todos ... A linha de raciocinio é a seguinte: a combo que tiver a propriedade TEXT <> de TODOS deve ser filtrada o campo a que se refere na tabela com a PALAVRA ou item que aparece na COMBO, ou seja, o valor escolhido pelo usuário Private Sub FILTROS() If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente <> "TODOS" Then With rs_relatorio .Filter = " nome like '" & Combo_proponente & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório Individual" End If If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio <> "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " municipio like '" & Combo_municipio & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio.Text End If If Combo_situacao = "TODOS" And _ Combo_atividade <> "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " ATIVIDADE like '" & Combo_atividade & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Atividade" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_atividade.Text End If If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista <> "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " projetista like '" & Combo_projetista & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista.Text End If If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa <> "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " porte like '" & Combo_programa & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa.Text End If If Combo_situacao <> "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " situacao like '" & Combo_situacao & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Situação" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_situacao.Text End If If Combo_situacao <> "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio <> "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " situacao like '" & Combo_situacao & "'and municipio like '" & Combo_municipio & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Situação" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_situacao End If If Combo_situacao <> "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista <> "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " situacao like '" & Combo_situacao & "'and projetista like '" & Combo_projetista & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Situação" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_situacao End If If Combo_situacao <> "TODOS" And _ Combo_atividade <> "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " situacao like '" & Combo_situacao & "'and atividade like '" & Combo_atividade & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Atividade/Situação" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_atividade & " / " & Combo_situacao End If If Combo_situacao <> "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa <> "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " situacao like '" & Combo_situacao & "'and porte like '" & Combo_programa & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa/Situação" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa & " / " & Combo_situacao End If If Combo_situacao = "TODOS" And _ Combo_atividade <> "TODOS" And _ Combo_projetista <> "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " atividade like '" & Combo_atividade & "'and projetista like '" & Combo_projetista & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Atividade" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_atividade End If If Combo_situacao = "TODOS" And _ Combo_atividade <> "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio <> "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " atividade like '" & Combo_atividade & "'and municipio like '" & Combo_municipio & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Atividade" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_atividade End If If Combo_situacao = "TODOS" And _ Combo_atividade <> "TODOS" And _ Combo_projetista = "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa <> "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " atividade like '" & Combo_atividade & "'and porte like '" & Combo_programa & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa/Atividade" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa & " / " & Combo_atividade End If If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista <> "TODOS" And _ Combo_municipio <> "TODOS" And _ Combo_programa = "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " projetista like '" & Combo_projetista & "'and municipio like '" & Combo_municipio & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Projetista" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_projetista End If If Combo_situacao = "TODOS" And _ Combo_atividade = "TODOS" And _ Combo_projetista <> "TODOS" And _ Combo_municipio = "TODOS" And _ Combo_programa <> "TODOS" And _ Combo_proponente = "TODOS" Then With rs_relatorio .Filter = " projetista like '" & Combo_projetista & "'and porte like '" & Combo_programa & "'" End With Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Programa" Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_programa End If End Sub Espero que exista saida para um caso desses... Obrigado a todos pela atenção a mais esta questão VB
-
Gabriel, consegui fazendo o seguinte: Após gerado o recordset e tal... no evento Click do botão para gerar o relatorio é só por a condição para o text que vai aparecer o valor, assim: If dif = 0 Then DataReport1.Sections("section1").Controls("text1").Caption = "" Else DataReport1.Sections("section1").Controls("text1").Caption = dif End If Essa é uma parte do código que usei para gerar um relatório e resolvi testar seu problema nele e realmente funcionou. Obs´: no código "dif " é uma variável onde calculo a diferença entre valores e ponho o resultado para aparecer no relatório, ao invés de usar o RptFunction, pois como eu gero o Relatorio atrvés de um Recordset eu faço todas as operações no recordset e envio para o Datareport.
-
Ok colega, vamos lá, passo a passo... Para isso eu imagino uma tabela com os dois campos : 1 - credito 2 - debito No general declarations do Form: Dim cmd As New ADODB.Command Dim relatorio As New ADODB.Recordset Crie um DataReport em branco para ver como irá funcionar, depois de entender como funciona adapte ao seu projeto ok? após criar o DataReport insira nele: 1 textbox na seção details section1 e ponha na propriedade DataField = credito 1 textbox na seção details section1 e ponha na propriedade DataField = debito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_Credito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_Debito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_liquido Agora no botão para gerar o relatorio: Private Sub Command1_Click() With cmd .ActiveConnection = cnn 'cnn é o nome da conexão .CommandType = adCmdText .CommandText = "SELECT tabela.credito, tabela.debito, (Select Sum(credito) as Totalcred From tabela) as totalcred, (select sum(debito) as totaldeb from tabela) as totaldeb FROM tabela" ' instrução SQL para retornar os campos debito, credito e suas somas Set rs = .Execute 'carrega o recordset DataReport1.Sections("section3").Controls("Total_credito").Caption = rs!totalcred ' insere no datareport a soma dos creditos DataReport1.Sections("section3").Controls("total_debito").Caption = rs!totaldeb ' insere no datareport a soma dos debitos Dim somacred As Long ' cria variavel para guardar valor da soma dos creditos Dim somadeb As Long ' cria variavel para guardar valor da soma dos debitos Dim dif As Long ' cria variavel para guardar a diferença entre credito e debito somacred = rs!totalcred ' insere o valor da soma dos creditos do recordset na variavel somadeb = rs!totaldeb ' insere o valor da soma dos debitos do recordset na variavel dif = somacred - somadeb ' calcula a diferença entre credito e debito guardando nesta variavel DataReport1.Sections("section3").Controls("total_liquido").Caption = dif ' insere a diferença através da variavel no DataReport With DataReport1 ' Chama o DataReport Set .DataSource = rs .DataMember = "" .Refresh .Show End With End With End Sub Beleza ? Qualquer duvida estamos ai ! ...
-
Alterar Caminho Do Bd No Momento Da Instalação
pergunta respondeu ao Macêdo de Macêdo em Visual Basic
valeu camarada, vou fazer os testes. Obrigado. -
Gostaria de saber se é possível fazer o seguinte: uso este código para conexão com o BD: Private Sub Timer1_Timer() On Error GoTo errconexao cnn.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _ "data Source = " & App.Path & "\pataiba.mdb;" cnn.CursorLocation = adUseClient cnn.Open Unload Me Frm_login.Show Exit Sub errconexao: With Err If .Number <> 0 Then MsgBox " Houve um erro na conexão com o banco de dados." & _ vbCrLf & " O sistema será encerrado.", vbCritical + vbOKOnly + vbApplicationModal, "Erro na conexão" .Number = 0 Set cnn = Nothing End End If End With End Sub vejam que utilizo o app.path para quando da instalação o banco ser encontrado sem problemas certo? mas, quando eu crio um programa para rodar em rede, no lugar do app.path eu ponho o caminho da pasta publica onde estará o BD, exemplo U:\sistemas\pataiba.mdb, ou seja, a pasta que todos os micros acessam e sendo assim o banco será usado por todos os micros da empresa e as alterações, inclusões...etc feitas em um micro estarão disponiveis para todos, ou seja um unico banco de dados para todos os micros (coisa que quando se usa o app.path cada micro fica com um BD separado)...agora minha pergunta. Quando eu sei que a pasta publica existe fica fácil, pois já ponho o caminho correto do BD, porém, no momento estou precisando mandar meu programa para outra empresa, ou seja, o caminho da pasta publica será com certeza diferente, então, como fazer para alterar este caminho no momento da instalação do programa ? sendo que isto será feito pelo cliente, antes de clicar no SETUP, pois irei mandar o CD com o instalador. Obs: crio o instalador com o Package and Deploy Wizard Pensei em criar uma variavel onde o caminho ficaria num arquivo TXT então antes de instalar a pessoa poderia colocar o caminho do BD neste TXT. Agradeço desde já a atenção de todos ao meu problema