1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em Pesquisas (Vb6 & Access 2003)

Discussão em 'Programação' iniciada por kripton2007, 15 de Julho de 2008. (Respostas: 2; Visualizações: 1182)

  1. kripton2007

    kripton2007 Power Member

    Ola a todos...


    estou aqui com um problema no desenvolvimento de um novo programa. Trata-se de um simples programa com uma ainda mais simples base de dados, contudo não deixa de não dar as suas dores de cabeça.
    Então é o seguinte.....
    Pretendo inserir uma form de pesquisas no programa em que está presente um conjunto de 3 optionbox que dºao a possibilidade de escolher o filtro para a pesquisa a efectuar, pesquisa essa que será introduzida numa única textbox.
    O programa utiliza uma simples base de dados com apenas 1 tabela e 34 campos, na qual é feita a ligação através do DATA control e em que os resultados da pesquisa serão mostrados numa MSFlexGrid, sendo que ao clicar sobre o resultado pretendido, ele transporta os dados para um conjunto de textboxs referentes ao campo desse registo numa outra form do programa...

    Sinceramente não estou a conseguir fazer nada disto... talvez seja cansaço, pois ultimamente tenho andado com muito trabalho!
    Agradecia uma ajuda, o mais breve possivel, pois tenho alguma urgência em acabar o programa...
    Deixo também uma imagem da área de pesquisas para dar uma ideia daquilo que pretendo!

    [​IMG]



    Quanto à base de dados:
    apenas existe 1 única tabela com o nome "Geral", que possui os seguintes campos:
    n_cliente
    ramo
    n_apolice
    nome
    morada
    cod_postal
    residencia
    bi
    n_contribuinte
    nascimento
    estado_civil
    telefone
    profissao
    carta
    data
    prazo
    vencimento
    capital
    assist_viagem
    ocupantes
    desp_tratamento
    modalidade
    categoria
    marca_modelo
    matricula
    cilindrada
    ano_matricula
    quadro
    combustivel
    premio
    lotacao
    peso_bruto
    observacoes
    observacoes2
    telemovel
    fax

    o programa em si será muito simples, sendo que é so para adicionar um novo registo, modificar campos ou eliminar o registo!
    Já agora... será possivel na MSFlexGrid apenas aparecerem os campos "n_cliente", "nome", "n_apolice" e "ramo", com os nomes direitos, tipo "Nº de Cliente", "Nome", "Nº da Apólice" e "Ramo".


    agradeço a brevidade da ajuda!

    Cumps
     
  2. kripton2007

    kripton2007 Power Member

    AJJUUUDDDAAAAAAAA!!!!!!!

    Please... isto é mesmo urgente!


    Cumps
     
  3. Zealot

    Zealot I quit My Job for Folding

    Não leves a mal, mas parece que não sabes programar. Isso torna-se óbvio porque não especificas em que parte estás a ter o problema e generalisas. Assim não motivas a que te ajudem. A malta não vai muito à bola com malta que não sabe fazer os trabalhos da escola. Afinal andas a estudar para aprender.


    Ora para preencher a Grid eu usaria um código tipo este:
    btnGo ... OnClick()

    Código:
    If rdoPor_Nome.[I]nome da propriedade que me esqueci[/I] = True Then
       DataSet1.Recordset[I](?)[/I] = .... [I](instrução de SQL)[/I] "SELECT * FROM Geral WHERE Geral.Nome = " + txtPesquisa.Text 
       MsFlexGrid1.[I]propriedade = [/I]DataSet1.Recordset[I](? não tenho a certeza!)[/I]
     Else
       If rdoPor_Num_Apolice........ = True Then
    End If
     
     
    

    Para a parte em que o utilizador clica na Grid, aí torna-se mais trabalhoso. Tens duas formas de passar a informação para as textboxes do outro form. Ou crias um array de textboxes e metes por ordem ascendente as textboxes de forma a q o campo nº 0 da Grid seja o mesmo da Textbox(0), e o campo 1 para a Textbox(1), etc, e metes num ciclo qualquer coisa como:

    Código:
    Dim i = 0
    For MsFlexGrid1.Field(i) To MsFlexGrid1.Field([I]total - 1[/I])
       Textbox(i).Text = MsFlexGrid1.Fields(i)
       i = i + 1
    Loop [I](?)[/I]
    
    Este é, sem dúvida, o melhor método.


    Senão tens de especificar qual a textbox que vai receber o conteúdo de cada campo na tabela. Isso vai dar uma grande trabalheira porque seria preciso fazer txtn_cliente.text = MsFlexGrid.Field("n_cliente")e o mesmo para o ramo, n_apolice, etc, etc, etc. Uma linha de código para cada textbox. Altamente ineficiente, seria um desperdício de tempo.

    Nota que eu não me lembro de quase nada do código em si, ou do nome das propriedades, procedures, métodos, sintaxe (daí meter tanta coisa com ? e em itálico), etc, isto é só mesmo para ver se começas a pensar. Aprender a programar exige estar concentrado, sem interrupções ou ruídos, sem telemóveis ou messengers. São pequenos sacrifícios que se fazem para obter sucesso escolar/profissional.
     

Partilhar esta Página