
Macêdo
Membros-
Total de itens
303 -
Registro em
-
Última visita
Tudo que Macêdo postou
-
alguém pode me passar o código de como exportar dados de uma planilha excel para um BD access ?
-
Respondendo a sua pergunta Dudhu_capixaba: você pode usufruir de todas as condições existentes nas instuções SQL para implementar seu Filtro nos relatórios, e pode fazê-los da mesma forma que se faz com os outros controles vinculados como o ADODC por exemplo, ou mesmo via código. Pelo que vi você está utilizando o DataReport com DataEnvironment exemplo de filtro com mais condições: Filtrar pelo campo NOME, onde os nomes comecem com as letras iniciais que estão na TextNOME onde o campo MUNICIPIO seja igual ao informado na text_municipio deComercial.rsProdutos.Filter =" nome like '" & TextNOME.Text & "%' where municipio = '" & text_municipio & "'" rptProdutos.Show Filtrar registros entre DATAS colocadas em duas textbox, uma para data_inicial e outra Data_final deComercial.rsProdutos.Filter = "data >= '" & Txtdatainicial & "' and data<= '" & Txtdatafinal & "'" rptProdutos.Show
-
Deixa eu explicar melhor, na propriedade datafield das text você coloca o nome dos campos da sua tabela, para gerar o relatorio: digamos que seu select seja assim: select campo1, campo2, campo3 from tabela então você põe 3 text's no relatório e põe na propriedade datafield das text's text1 = campo1 text2 = campo2 text3 = campo3 isso é para gerar o relatório, pois digamos que o campo1 seja (nome) campo2 (cpf) campo3 (endereço) ok ? as datas serão informadas da mesma forma que você informa no seu Flexgrid, isso porque você irá usar o mesmo recordset ok ?
-
Com certeza gabriel! Coloque um DataReport em seu projeto, insira na seção Details(section1) as textbox referentes aos campos de sua consulta, ponha na propriedade DATAFIELD das textbox o nome do campo ao qual cada uma se refere, daí é só por no botão que chama o relatorio o seguinte código With Rpt_RELATORIO '(rpt_relatorio) é o nome do relatório Set .DataSource = RS_recordset '(rs_recordset)é o nome do recordset .DataMember = "" .Refresh .Show End With Pronto!
-
Bom meus caros colegas, só agora enxerguei que o DataEnvironment funciona como o controle ADODC, ou seja, se não tomarmos os devidos cuidados quando criarmos o Setup, ao instalarmos o Programa em outra máquina cairemos no problema do Banco de Dados não encontrado. Bom, consegui abrir meu DataReport informando o caminho ao Dataenvironment através do código: Private Sub Command1_Click() With DataEnvironment1.Connection1 .ConnectionString = cnnProjetos .CursorLocation = adUseClient RptProjetos.Show End With End Sub O que acho que elimina o problema de não encontrar o banco de dados pois informo ao Dataenvironment a conexão principal do programa que utiliza o app.path porém...desta forma eu só consigo abrir o relatório uma vez, quando tento abrir em seguida da o erro: "objeto já aberto" me levando a fechar o programa e abri-lo novamente se quiser abrir novamente o relatorio. o que posso fazer para solucionar este erro?
-
Se você acha... eu tenho certeza! hehehehe!, valeu Kuroi.
-
Pessoal, estou precisando da ajuda de vocês para obter o seguinte resultado com um SELECT Tenho duas tabelas, a primeira é a tabela PROJETOS, onde ficam os dados referentes a cada projeto (COD, NOME, MUNICIPIO, PORTE) e a segunda é a tabela HISTORICO onde ficam os pareceres, ou análises, feitas em cada momento do projeto (COD_PROJETO, COD_HISTORICO, ANALISE). Onde COD_PROJETO é o campo que se refere ao COD do Projeto na primeira tabela, ou seja, são iguais e COD_HISTORICO é o código seqüencial de ANALISES de cada Projeto, Abaixo exemplo das duas e o resultado que espero obter: TABELA PROJETOS: COD NOME MUNICIPIO PORTE 1 JOÃO SÃO PAULO PEQUENO 2 PAULO RIO DE JANEIRO MEDIO 3 JOSÉ BRASILIA GRANDE TABELA HISTORICO COD_PROJETO COD_HISTORICO ANALISE 2 1 PENDENTE 1 1 FALTANDO DOCUMENTAÇÃO 3 1 DADOS PESSOAIS 1 2 DOCUMENTAÇÃO ENTREGUE NESTA DATA Notem na tabela histórico que o projeto de código 1 já possui 2 análises O SELECT que estou precisando deve retornar todos os dados da primeira tablela, porém deve retornar somente a ultima ANALISE de cada Projeto, ficando assim: COD NOME MUNICIPIO PORTE ANALISE 1 JOÃO SÃO PAULO PEQUENO DOCUMENTAÇÃO ENTREGUE NESTA DATA 2 PAULO RIO DE JANEIRO MEDIO PENDENTE 3 JOSÉ BRASILIA GRANDE DADOS PESSOAIS Espero que possam me ajudar, obrigado a todos pela atenção.
-
Perfeito kuroi! O que tem nesta informação que faz com que resolva um problema deste?
-
Kuroi, estou fazendo a conexão dentro do evento timer do splash: Private Sub Timer1_Timer() On Error GoTo errconexao cnnProjetos.ConnectionString = "provider = microsoft.jet.oledb.4.0;" & _ "data Source = " & App.Path & "\bdprojetos.mdb;" cnnProjetos.Open Unload Me MDIprojetos.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 cnnProjetos = Nothing End End If End With End Sub
-
consigo passar registro por registro com o MoveNext OK! Consigo também mover para o primeiro registro com o MoveFirst OK! O MovePrevious não funciona e dá o seguinte erro: Run Time Error '3219' Operação não permitida neste contexto O MoveLast não funciona e dá o seguinte erro: Run time error '2147217884(80040e24) o conjunto de linhas não oferece suporte para busca regressiva abaixo todo o codigo: general declarations Dim cnncomando As New ADODB.Command Dim rs_Pronaf As New ADODB.Recordset Private Sub Command1_Click() With rs_Pronaf rs_Pronaf.MoveNext Text1 = !cod Text2 = !nome Text3 = !municipio End With End Sub Private Sub Command2_Click() With rs_Pronaf rs_Pronaf.MoveFirst Text1 = !cod Text2 = !nome Text3 = !municipio End With End Sub Private Sub Command3_Click() With rs_Pronaf rs_Pronaf.MoveLast Text1 = !cod Text2 = !nome Text3 = !municipio End With End Sub Private Sub Command4_Click() With rs_Pronaf rs_Pronaf.MovePrevious Text1 = !cod Text2 = !nome Text3 = !municipio End With End Sub Private Sub Form_Load() With cnncomando .ActiveConnection = cnnProjetos .CommandType = adCmdText .CommandText = " select * from projetos " Set rs_Pronaf = .Execute End With With rs_Pronaf Text1 = !cod Text2 = !nome Text3 = !municipio End With End Sub Agradeço desde já a atenção de todos.
-
Exemplo Dim cnncomando As New ADODB.Command Dim rs_Pronaf As New ADODB.Recordset With cnncomando .ActiveConnection = cnnProjetos .CommandType = adCmdText .CommandText = " insert into projetos " & _ "(cod, data, cpf, nome, projetista, valor, atividade, municipio, porte)values ('" & _ Text_COD.Text & "','" & _ Text_DATA.Text & "','" & _ Text_CPF.Text & "', '" & _ Text_NOME.Text & "','" & _ Combo_PROJ.Text & "','" & _ Text_VALOR.Text & "','" & _ Combo_ATIV.Text & "','" & _ Combo_MUN.Text & "','" & _ Combo_PORTE.Text & "');" .Execute End With Faz as alterações: nome da tabela, campos e valores, caso você esteja tentando incluir conforme o que você postou, acho que estão faltando os operadores: .CommandText = " insert into função " & _ "(função) values (" & text1.text & " );" importante: Lembrando que o primeiro nome função é o nome da tabela e o segundo é o nome do campo da tabela, caso o conteudo do text1 seja numerico desta forma tá beleza, caso seja string tem que ficar entre aspas simples para depois aspas duplas '"& text1 & "', para evitar essa atrapalhada eu sempre ponho entre aspas simples e duplas assim values ('" & text & "') beleza!
-
Bom, para preencher muitas combos eu crio SubProcedimentos para cada combo e ponho o nome da Sub dentro do Form_Load explicando: Para criar SubProcedimentos você escreve dentro da janela de código: Private Sub + o nome do procedimento + os parenteses() exemplo: Private Sub Preenche_combo_TITU () Dim cnnComan As New ADODB.Command Dim sel As New ADODB.Recordset with cnncoman .ActiveConnection = BDbanc .CommandType = adCmdText .CommandText = "select * from Cons_Titu" Set sel = .Execute sel.MoveFirst Do While Not sel.EOF Cmb_titu.AddItem sel !CAMPO ' atenção altere aqui o nome do campo da tabela sel.MoveNext Loop End With End sub E então dentro do Form_Load você coloca o Procedimento a ser executado, assim: Private Sub Form_Load() Preenche_combo_TITU end sub Então seguindo este exemplo é só você criar os subprocedimentos para cada combo e por dentro do Form_Load o nome dos mesmos, um abaixo do outro, desta forma quando ocorrer o evento Load do Form ele irá ler o código de preenchimento de todas as combos Qualquer duvida tamo aqui...Beleza?
-
Iremos precisar, além do controle ToolBar, o controle ImageList. Para dispor destes controles insira-os em sua caixa de Ferramentas, ou como conhecida Toolbox, da seguinte forma: 1 – Menu Project 2 - Components Na caixa de diálogo que se abre: 1 - na aba Controls 2 – Selecione a caixa de seleção do Controle Microsoft Windows Common Controls 6.0 (SP6) 3 -Clik em aplicar ou OK Agora que os controles já estão em sua Toolbox: 1 - Insira os controles ImageList e o controle Toolbar em seu Form Primeiro trabalharemos a ImageList depois a Toolbar 1 -Click com o botão direito sobre o ImageList 2 – No menu que se abre Click em Properties 3 – Click na aba Images 4 – Click em Insert Picture e localize o ícone que quiser por na Toolbar 5 – Insira mais um icone conforme procedimento 4 anterior 6 – Click em OK Agora na Toolbar: 1 – Click com o botão direito sobre o Toolbar 2 - No menu que se abre Click em Properties 3 – Na aba General, o 3º item de Nome ImageList deve estar marcado como “None”, click na seta e selecione a sua ImageList , a qual deve estar aparecendo com o nome de ImageList1, caso você não tenha mudado o nome do controle. 4 – Click agora na aba Buttons 5 – Click em Insert Butons, como inserimos duas imagens no ImageList, insira também dois Butons para o Toolbar 6 – Ainda na aba Butons procure pelo campo Image : 7 – para o índex 1, ponha o numero 1 no campo Image 8 - para o índex 2, ponha o numero 2 no campo Image 9 –clik em ok Pronto! Sua toolbar está criada, agora vamos codificá-la para seu funcionamento Dê dois clicks cobre o Toolbar para abrir a caixa de eventos: Dentro do evento Click ponha o comando select para ver como se procede o funcionamente da Toolbar: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Msgbox(“você clicou o primeiro botão”) Case 2 Msgbox(“você clicou o segundo botão”) End select End sub Rode seu projeto e veja como funciona, agora é só por o Toolbar para funcionar em sua aplicação conforme sua necessidade. Bons estudos e até mais Jilney Macêdo
-
tenho uma rotina FILTER à qual pus como referencia, ou melhor, tentei por como referencia o valor do COD que se encontra dentro do Datagrid, ou seja, gostaria que o FILTER pegasse o valor do campo selecionado no Datagrid, assim: exemplo do GRID: COD NOME ENDEREÇO 1 KUROI TSL 4 JILNEY ASDADFA 18 GABRIEL ASDASDA 7 MACEDO ASDAKLGFDS Digamos que o usuario selecione a linha: 4 JILNEY ASDADFA Gostaria de usar como parametro para o FILTER este valor do COD = 4, ou seja, usar sempre o valor da 1ª coluna da linha selecionada. Dim cnncomando As New ADODB.Command Dim rs_altera As New ADODB.Recordset With cnncomando .ActiveConnection = cnnProjetos .CommandType = adCmdText .CommandText = "select * from arquivo" Set rs_altera = .Execute End With With rs_altera rs_altera.Filter = " cod = '" & DataGrid1.(O_QUE_COLOCO_AQUI?) & "'" Dim vCaixa As Integer vCaixa = MsgBox("Deseja alterar o número da caixa onde está arquivado o projeto de : " & !nome & " ? ", vbYesNo + vbQuestion, "Alterar caixa do arquivo") If vCaixa = vbYes Then Dim vALT As Integer vALT = InputBox("Digite o número da caixa onde será arquivado o projeto", "Arquivar projeto") With cnncomando .ActiveConnection = cnnProjetos .CommandType = adCmdText .CommandText = " update arquivo set " & _ " caixa = '" & vALT & "'" & _ "where cod = '" & DataGrid1.(O_MESMO_VALOR_QUESTIONADO) & "';" End With Set rs_altera = Nothing Set cnncomando = Nothing End If End With End Sub
-
Amigo já vi onde tá o erro, tem um espaço na linha do Do While assim: do while not sel .eof obs: retire o espaço para ficar assim: do while not sel.eof com certeza o erro é este, já testei aqui e apareceu este erro mesmo quando deixa este espaço entre o nome do recordset e o .eof
-
Private Sub Form_Load() Dim cnnComan As New ADODB.Command Dim sel As New ADODB.Recordset with cnncoman .ActiveConnection = BDbanc .CommandType = adCmdText .CommandText = "select * from Cons_Titu" Set sel = .Execute sel.MoveFirst Do While Not sel .EOF Cmb_titu.AddItem sel !CAMPO ' atenção altere aqui o nome do campo da tabela sel.MoveNext Loop End With
-
Já tentou usar um DataGrid vinculado a um controle ADODC ? é muito fácil e bem flexivel. podendo usar SQL para preenchimento com os dados de uma ou mais tabelas sem falar que para alterar nome de Colunas, o Design, Formato dos campos de Linhas e colunas (texto, moeda, data) e muitas outras configuraçoes é bem facil e interesante, gosto muito deste controle
-
Para inserir dados de uma tabela em outra: no exemplo estamos inserindo nos campos cod, cpf e nome da da tabela_X os registros dos campos cod, cpf e nome da tabela_Z With cnncomando .ActiveConnection = cnn_conexão .CommandType = adCmdText .CommandText = " insert into tabela_X " & _ "(cod, cpf, nome)select cod, cpf, nome from Tabela_Z Para inserir apenas os campos referentes a 1 (um) registro, ponha uma condição: With cnncomando .ActiveConnection = cnn_conexão .CommandType = adCmdText .CommandText = " insert into tabela_X " & _ "(cod, cpf, nome)select cod, cpf, nome from Tabela_Z where cod = " & TextCOD.Text & " " .Execute
-
usando as constantes vbPRORPortrait 1 Retrato vbPRORLandscape 2 Paisagem
-
Como Usar A Ferramenta Timer Para Atualizar O Programa?
pergunta respondeu ao Dracom de Macêdo em Visual Basic
Põe o seu código de atualização dentro do evento, exemplo: digamos que você usa o controle ADODC_360 e quer atualizá-lo com o timer : Private Sub Timer1_Timer() ADODC_360.refresh end sub Na propriedade Interval você coloca de quanto em quanto tempo quer que a atualização aconteça, lembrando que cada 1000 equivale a 1 segundo -
Valeu Kuroi!
-
tem como em por num evento click de um botão tipo um link para quando eu clicar ele abrir o internet explorer e chamar a página da internet ? exemplo, quando clicar no botão private sub cmd_consulta_cpf () acessar a página da Receita Federal para consultar da situação do CPF end sub
-
Cara vê se ajuda, quando queremos lançar o texto de algum controle em uma MSGBOX, ou em outro controle fazemos o seguinte: digamos que quero que apareça na msgbox o nome do cliente que escolhi na text_clientes e o sexo do cliente que está na text_sexo Private Sub Command1_Click() Dim vdescricao As Integer vdescricao = MsgBox("cliente selecionado :" & Text_clientes & " do sexo " & Text_sexo, vbOKOnly, "Informações") End Sub Beleza?, você pôe os textos entre aspas duplas " texto" e concatena com o operador "&" o valor do campo que quer que apareça.
-
Colocando o controle ADODC você clica nele com o direito Clica em ADODC Properties abre então a caixa PROPERTIE PAGES Clica em UseConnection String Clica no Botão BUILD abre a caixa PROPRIEDADE DE VINCULAÇÂO DE DADOS Na janela que abre você clica duas vezes no item MICROSOFT JET 4.0 OL DB PROVIDER então ele salta para a aba conexão onde você clica no botão "..." e seleciona o BD Depois clica em TESTAR CONEXÂO Depois em OK ele volta para a primeira caixa: PROPERTIE PAGES você clica na aba RECORDSOURCE No item COMMAND TYPE escolhe a opção 1- ADCMDTEXT isto habilita a caixa COMMAND TEXT SQL você põe sua SQL la dentro agora é so ir na propriedade do DATAGRID colocar na propriedade DATASOURCE o nome do controle ADODC, o qual já aparece lá quando você clica na seta pra baixo clicar com o direito sobre o DATAGRID e clicar em RETREVIE FIELD'S PRONTO ele preenche com os campo das duas tabelas Dá pra fazer isto tudo via código, por sinal estou abandonando um pouco o controle ADODC, uso ele só quando é para consultas ou uso de GRID's pois facilita bastante, se quiser saber mais é só postar que terei prazer em passar o pouco do conhecimento que tenho.
-
exatamente DataEnvironment1.rsCommand1.Filter = " NOME like '" & LIST_NOME.Text & "'" (faz o filtro do campo NOME em relação ao nome selecionado no list) Relatorio_CLientes.Show (chama o relatorio CLIENTES com o filtro)