Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    61

    stampare un record di access cn datareport

    Salve ragazzi, mi servirebbe una mano.
    prima di tutto utilizzo vb6 e access 2000.
    Il problema e' questo:
    Ho un semplicissimo database clienti e un interfaccia vb che mi permette di scorrere tra i vari record.
    Ho inserito in oltre un datagrid e un textbox per filtare i risuutati in base a cio' che ci si scrive dentro.
    Ora volevo sapere come posso stampare solo il record selezionato dall' utente in datagrid con datareport???
    Naturalmente ho provato anche collegando, il datareport ad dataenvironment ma mi stampa tutti i record del database......
    MI aiutate ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    20
    Se usi il dataenvironment,imposti la connessione e inserisci un command nelle proprietà del quale inserisci il nome, la connessione e l'istruzione sql (nelle proprietà c'è un box apposito).
    Per esempio
    codice:
    SELECT * FROM Tabella WHERE Tua variabile = ?AND variabile2=? ecc.
    e poi nel button del form principale che per esempio usi per chiamare il report, inserisci qualcosa di simile

    codice:
    DataEnvironment1.Nomedel comando messo nel DE (variabile 1), (variabile2),(ecc.)
    .

    Inoltre ricorda (almeno io ho trovato corretto farlo), di mettere nel button, una sequenza per la quale se la connessione è aperta, la chiude e poi la riapre. Il tutto prima di passare le variabili al DE.
    Spero di esserti stato utile

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    61
    Salve,
    Innanzitutto grazie mille della risposta..
    Ho provato , ma nn va...sicuramente sbaglio qlcosina
    praticamente:
    1 ho creato con DE una connessione al database, poi un command1 e ho spuntato istruzione sql e ho scritto:
    "SELECT * FROM clienti WHERE nome='s'"
    dove s e una variabile da me creata che contiene la stringa di una textbox del formclienti dal quale voglio lanciare il datareport.
    Fin qui penso sia ok (spero almeno)
    Per quanto riguarda il command che deve lanciare il DE ho:
    chiuso la connessione
    riaperta
    ho scritto
    dataenvironment1.command1(s),
    pero nn so come associare i textbox del datareport dal comand del form.
    Se vado nelle proprieta del datareport; in datasorce metto dataenvironment, mentre in datafield non mi esce il command1 creato (suppongo perche ci sia la stringa sql)
    e di conseguenza non riesco ad associare le textbox del DR.
    Ti ringrazio anticipatamente
    Saluti Ivano



    .

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da ivano78
    Salve ragazzi, mi servirebbe una mano.
    prima di tutto utilizzo vb6 e access 2000.
    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    20
    Allora questo è un errorealmeno per come ho fatto io ..e funziona)

    "SELECT * FROM clienti WHERE nome='s'"
    Prova a correggere con

    codice:
    SELECT * FROM clienti WHERE nome = ?
    poi:
    Nelle proprietà del report:
    Datamember scegli ....il command che hai creato per l'SQL
    DaTaSource scegli Dataenvironment

    Dal form chiamante, dopo aver chiuso e riaperto la connessione

    codice:
    DataEnvironment1.Command1 (la text che porta il nome che vuoi)
    e poi usi i comandi per vederlo, stamparlo o esportarlo.
    Quindi nel tuo caso

    codice:
    nometuoreport.PrintReport True
    Ricorda che il report va composto da te se no ti appare un form bianco

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    61

    Uffa!
    Grazie ancora per le risposte
    Diciamo che ho capito la sintassi , pero nell istruzione sql la variabile che inserisco, la vede come un nome predefinito, quindi nel report non mi esce niente.
    ho associato al comando cmdanteprima solo datareport1.show
    Ho aperto dataenvironment e creato connessione al database e relativo command.
    ho spuntato stringa sql e inserito la stringa
    SELECT * FROM clienti WHERE (nome = 'seleziona') dove seleziona e la variabile dichiarata nel load del form principale e associata a una textbox .
    Cioe vorrei filtare i rislultati della query in base a una variabile...
    Ma e' possibile farlo???????

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    20
    Ascolta...non credo che la mia soluzione sia unica...però mi sono scontrato col problema di stampare un solo record e ci ho sbattuto la testa un bel pò prima di trovare quella soluzione.
    Ti consiglio alcune cose:
    1) se vuoi passare una variabile, o dico meglio, vuoi che venga vista in tutto il progetto, la devi mettere in un modulo
    2) io non sono mai riuscito a passare una variabile stringa alla sql nel commad del DE
    3) nella sql del command non mettere apici, parentesi ecc. ...where nome=? e basta
    4)Hai creato il report vero e proprio?hai inserito in essi i campi relativi al recordset?ne devi creare uno apposito per il tuo "record variabile" ..consentimi la definizione

    Se proprio vuoi passare una variabile vedi un pò di studiarti i parametri del command...io non ci sono riuscito.
    Ti suggerisco 2 stratagemmi.

    1) potresti stampare il record corrente che visualizzi, passando al ? della sql la textbox del nome

    2) metti una text nuova nel form, la rendi invisibile e la riempi con una SELECT del nome che vuoi stampare. Poi passi al command la text così creata.

    Altro non so dirti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.