Visualizzare o stampare valore n volte

di il
9 risposte

Visualizzare o stampare valore n volte

Ciao a tutti, ho diversi articoli in più magazzini.
ho generato in access un qr code per ogni codice articolo. Riesco a stamparli cosi da apporli sui vari articoli. La mia difficolta cerco di spiegarla con un esempio:
codice denominazione quantita magazzino
1234 armadio 15 01
5678 lampada 12 01

quando stampo inventario con tutte le voci (compreso qrcode) vorrei che mi stampasse l'articolo 1234 in base alle quantità. Cioe nell'elenco l'art 1234 deve comparire 15 volte in modo da stampare 15 qrcode perche gli armadi sono 15 e volevo attaccare il qr code su ognuno. Spero di essere stato chiaro.

9 Risposte

  • Re: Visualizzare o stampare valore n volte

    Lo puoi fare da SQL mettendo in cross join una tabella di "utility" con un solo campo (N) da 1 a quanto pensi sia il numero massimo di occorrenze dello stesso pezzo e nel where metti N<=quantità
    select tabDati.campi_che_ti_interessano
    from tabDati, tabNumeri
    where tabNumeri.N<=tabDati.Quantita
  • Re: Visualizzare o stampare valore n volte

    Anch'io penserei a una "tabella di appoggio", in VBA aprire i DAO.Recordset di TuaTabella e TabellaAppoggio, creare un Loop di Quantità volte e impostare di conseguenza nella TabellaAppoggio record per record. Poi si passa a record successivo di TuaTabella e si ripete il Loop. Servono 2 Loop annidati.
  • Re: Visualizzare o stampare valore n volte

    Grazie a tutti per l'aiuto. Creata tabella con un campo N che ho inserito fino a 100. poi nella query avevo questo codice ma inserendo il where non mi fa vedere nessun dato. (togliendo il where vedo i dati richiesti). Non so fare i loop inizialmente pensavo si potesssero fare nella sql. cosa posso tentare di fare con il vostro aiuto? grazie in anticipo

    SELECT DISTINCT [470].NUC, [470].DENOMINAZIONE, [470].[QUANTITA'], [470].UFFICIO, [470].PALAZZINA, [470].DISLOCAZIONE
    FROM tabNumeri, 470
    where tabnumeri.N<="470.quantita'"
    GROUP BY [470].NUC, [470].DENOMINAZIONE, [470].[QUANTITA'], [470].UFFICIO, [470].PALAZZINA, [470].DISLOCAZIONE, [470].DISLOCAZIONE
    HAVING ((([470].DISLOCAZIONE)=[Forms]![470]![dislocombo]));
  • Re: Visualizzare o stampare valore n volte

    linofer ha scritto:


    Non so fare i loop
    Leggi questo documento per capire i DAO.Recordset e l'uso dei Loop
  • Re: Visualizzare o stampare valore n volte

    Ciao si ho visto ho provato a farne uno e funziona. il codice era gia scritto praticamente, Imparato un altra cosa usando una msgbox.

    Private Sub Comando137_Click()
    Dim DBCOrrente As DAO.Database
    Dim Tabella As DAO.Recordset
    'Apertura DB
    Set DBCOrrente = CurrentDb
    'Apertura Tabella
    Set Tabella = DBCOrrente.OpenRecordset("470", dbOpenDynaset)
    Do Until Tabella.EOF
    MsgBox Tabella.Fields("nuc=1730")
    Tabella.MoveNext
    Loop
    Tabella.Close
    DBCOrrente.Close
    End Sub

    Ma al momento no ho risolto il problema iniziale. Devo creare un elenco dove se per un articolo le quantità sono 4 me lo deve scrivere 4 volte.
  • Re: Visualizzare o stampare valore n volte

    Innanzitutto, come da regolamento del forum, quando scrivi codici (VBA, SQL...), clicca in basso sul tasto "Editor completo & Anteprima", quindi seleziona tutta la porzione di codice, poi clicca sul tasto </> (codice) che lo farà apparire poi con i tipici caratteri monotype più familiari ai programmatori.

    Il codice che hai scritto fa un Loop, ma non va a scrivere nulla nella 2a tabella.
    1. Tu devi aprire 2 recordset relativi a TuaTabella e TabellaAppoggio, questo lo scrivi in cima al codice.
    2. Poi crei un loop su TuaTabella.
    3. Per ogni record di TuaTabella che vai a prendere in considerazione, devi memorizzare il valore N (Quantità)
    4. Crei un ciclo For I=1 To N ... Next (interno al loop) e ogni volta vai a scrivere il nuovo valore in TabellaAppoggio (usando qui MoveNext, AddNew)
  • Re: Visualizzare o stampare valore n volte

    Ciao scusa la poca dimestichezza con forum e codice. E un po complicato per le mie conoscenze di codice provo a studiare qualcosa per capire come fare quello che mi hai detto. ho capito il metodo che vuoi usare ma devo capire come scriverlo, intanto grazie per l aiuto
  • Re: Visualizzare o stampare valore n volte

    linofer ha scritto:


    Grazie a tutti per l'aiuto. Creata tabella con un campo N che ho inserito fino a 100. poi nella query avevo questo codice ma inserendo il where non mi fa vedere nessun dato. (togliendo il where vedo i dati richiesti). Non so fare i loop inizialmente pensavo si potesssero fare nella sql. cosa posso tentare di fare con il vostro aiuto? grazie in anticipo

    SELECT DISTINCT [470].NUC, [470].DENOMINAZIONE, [470].[QUANTITA'], [470].UFFICIO, [470].PALAZZINA, [470].DISLOCAZIONE
    FROM tabNumeri, 470
    where tabnumeri.N<="470.quantita'"
    GROUP BY [470].NUC, [470].DENOMINAZIONE, [470].[QUANTITA'], [470].UFFICIO, [470].PALAZZINA, [470].DISLOCAZIONE, [470].DISLOCAZIONE
    HAVING ((([470].DISLOCAZIONE)=[Forms]![470]![dislocombo]));
    per forza non ti restituisce nulla ... guarda la where!
    non ti sembra ci sia qualcosa di strano?
    ci sono 2 errori, il primo sta a monte ed è nominare un campo con un carattere accentato (anzi qui sembra quasi un apostrofo).
    questo è aggirabile con l'uso delle quadre ma non è buona pratica. il secondo è appunto l'uso del doppio apice al posto delle quadre che porta ad un confronto con la STRINGA "470.quantita'" .. poi scusa... 470 cos'è?! il nome di una tabella? altra pessima idea
  • Re: Visualizzare o stampare valore n volte

    Ciao muttley005, ho preso tutti i tuoi suggerimenti. 470 e il numero del magazzino che ho modificato in tab470 e tolto l'apostrofo a quantita. Ho usato il tuo metodo e corretto il codice come mi avevi suggerito e funziona con una tabella con campo solo N. Grazie mille a tutti per il supporto
    
    SELECT DISTINCT tab470.NUC, tab470.DENOMINAZIONE, tab470.QUANTITA, tab470.UFFICIO, tab470.PALAZZINA, tab470.DISLOCAZIONE, tabNumeri.N
    FROM tabNumeri, tab470
    GROUP BY tab470.NUC, tab470.DENOMINAZIONE, tab470.QUANTITA, tab470.UFFICIO, tab470.PALAZZINA, tab470.DISLOCAZIONE, tabNumeri.N, tab470.DISLOCAZIONE
    HAVING (((tabNumeri.N)<=[tab470].[QUANTITA]) AND ((tab470.DISLOCAZIONE)=[Forms]![470]![dislocombo]));
    
Devi accedere o registrarti per scrivere nel forum
9 risposte