Newsgroup: it.comp.lang.visual-basic
Titolo: [?] problemi con oggetto printer

in un programma di fatturazione che sto realizzando ho la necessita di
stampare nei modelli prestampati, decido quindi di adoperare "printer" in
modo da stabilire con precisione (e soprattutto senza l'influenza dei vari
SO) la posizione dei singoli campi di un recordset.
Fecendo come segue ottengo pero soltanto la stampa del primo record, come
posso fare per stampare tutti i record, o meglio decidere di stampare le
fatture che contengono una certa data.
    Printer.Print rsRecordSet!prodotto1
    Printer.Print rsRecordSet!prodotto2
    Printer.Print rsRecordSet!prodotto3
    Printer.Print rsRecordSet!prodotto4
    Printer.Print rsRecordSet!prodotto5
    Printer.Print rsRecordSet!qta1
    Printer.Print rsRecordSet!qta2
    Printer.Print rsRecordSet!qta3
    Printer.Print rsRecordSet!qta4
    Printer.Print rsRecordSet!qta5
    Printer.EndDoc
grazie a chiunque possa aiutarmi a risolvere questo problema

 fatture che contengono una certa data.
Dovresti fare un ciclo che scorra il recordset e all'interno del ciclo
mettere una condizione sulla data
Do While not rsRecordSet.Eof
    if rsRecordSet!DataFattura= #TuaData# then
      Printer.Print rsRecordSet!prodotto1
      Printer.Print rsRecordSet!prodotto2
      Printer.Print rsRecordSet!prodotto3
      Printer.Print rsRecordSet!prodotto4
      Printer.Print rsRecordSet!prodotto5
      Printer.Print rsRecordSet!qta1
      Printer.Print rsRecordSet!qta2
      Printer.Print rsRecordSet!qta3
      Printer.Print rsRecordSet!qta4
      Printer.Print rsRecordSet!qta5
  endif
  rsRecordSet.movenext
loop
Printer.EndDoc
Ciao
Skysurfer

 ha scritto
| Fecendo come segue ottengo pero soltanto la stampa del primo record, come
| posso fare per stampare tutti i record, o meglio decidere di stampare le
| fatture che contengono una certa data.
rs.open "select * from miatabella where data=#" & miadata & "#"
if not rs.EOF and not rs.BOF then
    rs.movefirst
    while not rs.EOF
        ' stampa record
        rs.movenext
    wend
end if


grazie innanzitutto per la sollecitudine della risposta,
faccio in questo modo ma non funziona lo stesso
 rsRecordSet.Open "SELECT * FROM vendite WHERE data = '" & dataCorrente &
"'"
    Do While Not rsRecordSet.EOF
      Printer.Print rsRecordSet!prodotto1
      Printer.Print rsRecordSet!prodotto2
      Printer.Print rsRecordSet!prodotto3
      Printer.Print rsRecordSet!prodotto4
      Printer.Print rsRecordSet!prodotto5
      Printer.Print rsRecordSet!qta1
      Printer.Print rsRecordSet!qta2
      Printer.Print rsRecordSet!qta3
      Printer.Print rsRecordSet!qta4
      Printer.Print rsRecordSet!qta5
      rsRecordSet.MoveNext
    Loop
    Printer.EndDoc
se tolgo la parte della stringa sql stampa tutti i record (almeno una cosa
sono riuscita ad ottenerla)
spero voi possiate aiutarmi...

  rsRecordSet.Open "SELECT * FROM vendite WHERE data = '" & dataCorrente &
"'"
Prova a mettere # prima e dopo la data invece dell'apice singolo
rsRecordSet.Open "SELECT * FROM vendite WHERE data =  #" & dataCorrente &
"#"
Skysurfer

 ha scritto nel messaggio
news:dbON7.209929$sq5.10...@news.infostrada.it...
| [CUT]
| > rs.open "select * from miatabella where data=#" & miadata & "#"
| grazie innanzitutto per la sollecitudine della risposta,
| faccio in questo modo ma non funziona lo stesso
|  rsRecordSet.Open "SELECT * FROM vendite WHERE data = '" & dataCorrente &
| "'"
Come ti avevo suggerito, la data va inclusa tra due "#". Precisamente:
rs.Open "select * from [miatabella] where [miatabella].[campodata] = #" & miadata & "#"


siete gentilissimi a rispondermi così rapidamente, il fatto è che non
funziona lo stesso.
stò pensando che possa dipendere dal fatto che il recordset è già aperto
(stabilisco una connessione al db all'avvio del form, quindi
rsrecordset.open per visualizzare tutte le vendite) quindi il comando
rsrecordset.Open "select * from vendite where vendite.data = #" &
datacorrente& "#"
non sortisce alcun effetto. E' questo il problema ??
Grazie siete sempre gentilissimi......... Daria B.




 ha scritto

Be', puoi fare dei tentativi: prova a chiudere il rs prima di riaprirlo, prova ad assegnargli
nothing e a reistanziarlo con New prima di aprirlo. Che errore ti da, esattamente? su che riga?

 non sortisce alcun effetto. E' questo il problema ??
Domanda di base: coma la formatti questa data?
Ciao
------------------------- SiDB Simple DataBase engine ----
------------------------- adParser Expression evaluator --
 
http://space.virgilio.it/zntf...@tin.it/
----------------------------------------------------------


sia la data contenuta nel campo "data" del recordset sia la scelta che opero
su un'altro form "datacorrente" sono formattati "dd-mm-yyyy"; proverò
comunque con la chiusura del rs credo che il problema sia lì..... in effetti
una volta aperto credo che il comando rs.open con parametri sql non possa
intervenire in quanto tutti i campi sono già caricati e visualizzati.... che
dite procedo ??

 ha scritto
[CUT]
| che dite procedo ??
E che aspetti? :)))

 su un'altro form "datacorrente" sono formattati "dd-mm-yyyy"; proverò
Per la millesettecentotrentesima volta :)
Le date nei DB vanno formattate come mm/dd/yyyy (#mm/dd/yyyy# per access),
oppure seguendo le impostazioni internazionali se si passano come stringa,
es.: 'dd/mm/yyyy'.
Ciao