Ir para conteúdo
Fórum Script Brasil

Macêdo

Membros
  • Total de itens

    303
  • Registro em

  • Última visita

Tudo que Macêdo postou

  1. alguém pode me passar o código de como exportar dados de uma planilha excel para um BD access ?
  2. 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
  3. 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 ?
  4. 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!
  5. 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?
  6. Macêdo

    Ajuda Em Select

    Se você acha... eu tenho certeza! hehehehe!, valeu Kuroi.
  7. 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.
  8. Perfeito kuroi! O que tem nesta informação que faz com que resolva um problema deste?
  9. 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
  10. 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.
  11. Macêdo

    Ajuda Em Sql

    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!
  12. Macêdo

    Carregar Combo

    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?
  13. 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
  14. 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
  15. Macêdo

    Carregar Combo

    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
  16. Macêdo

    Carregar Combo

    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
  17. Macêdo

    Problema Com Grid

    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
  18. 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
  19. usando as constantes vbPRORPortrait 1 Retrato vbPRORLandscape 2 Paisagem
  20. 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
  21. 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
  22. 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.
  23. Macêdo

    Sql No Vb

    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.
  24. 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)
×
×
  • Criar Novo...