Utilizzo corretto di next record.

di il
30 risposte

30 Risposte - Pagina 2

  • Re: Utilizzo corretto di next record.

    05/07/2024 - sihsandrea ha scritto:


    05/07/2024 - Antony73 ha scritto:


    Sinceramente non ho compreso la questione del Next Record.

    Crea la sql

    Si posiziona al primo record

    Copia i valori che gli servono per quel record

    Passa al successivo next appunto.

    Fino al recordcount….

    Invia la mail con il file dei dati estrapolati.

    Esattamente: vorrei aprire il primo record della query, prendere i dati che mi servono e passare al successivo record, questo è tutto.

  • Re: Utilizzo corretto di next record.

    Il problema è che non si parla di un database…

    Hai un csv, magari quello lo puoi importare come dati di tabelle access.

    Poi si può discutere.

    Io non volevo entrare nel 3d proprio perché avevo intuito qualcosa di anomalo.

    Next non lo fai su un file di testo (non hai nemmeno campi). Devi elaborare il file in base a criteri che non sappiamo e tradurre tutto in una tabella database.

    I dati da dove arrivano? Da un db? Fatti inviare un xml.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - Ciccio_54 ha scritto:


    esattamente: vorrei aprire il primo record della query

    Ma di quale query parli? Non hai un DB. Hai un file di testo, nessuna query. Devi importare il file in una tabella e poi si parla di creare query.

  • Re: Utilizzo corretto di next record.

    sihsandrea, hai centrato il problema, infatti io vorrei:

    caricare la query
    posizionarmi al primo record
    copiare i valori che mi servono per quel record e gestirli come mi serve
    passare al successivo next appunto
    fino alla fine della query.

    Alla gestione dei dati che carico e all'invio tramite e-mail ho già provveduto per altre routine.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - oregon ha scritto:


    05/07/2024 - Ciccio_54 ha scritto:


    esattamente: vorrei aprire il primo record della query

    Ma di quale query parli? Non hai un DB. Hai un file di testo, nessuna query. Devi importare il file in una tabella e poi si parla di creare query.

    Come ho detto nel mio primo post:
    Io ho una Query (Contratti Query) che mi filtra i contratti scaduti, e io, record per record, devo comunicare ai singoli consulenti quali sono i loro contratti scaduti: come faccio ad analizzare un record alla volta?”

    Attualmente, siccome non sono capace di fare diversamente, sono costretto a salvare la Query in xls, e quindi salvare la xls in txt, perché lo "l'input #" è l'unico sistema che mi è venuto in mente per caricare i dati dei vari contratti.

    Quindi il file TXT che ho nominato "e-mail.txt" proviene dalla Query, ma è un sistema lungo e ferruginoso, e inoltre non è automatico, quindi io devo prima fare i vari salvataggi a mano, e alla fine posso lanciare la procedura in VBA che gestisce i dati del file di teso.

    Io vorrei saltare i vari salvataggi in xls e txt e prendere i dati direttamente dalla Query, partendo dal primo record e andando avanti, fino alla fine della Query.

    Lo so che ho abusato della vostra pazienza, ma più chiaro di così non lo so spiegare. Comunque vada a finire, vi ringrazio tutti sinceramente.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - Ciccio_54 ha scritto:

    ….“Io ho una Query (Contratti Query) che mi filtra i contratti scaduti, e io, record per record, devo comunicare ai singoli consulenti quali sono i loro contratti scaduti: come faccio ad analizzare un record alla volta?”…..

    Prova a pubblicare il codice sql della query che stai utilizzando, altrimenti non si riesce a capire molto.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - ettore56 ha scritto:


    05/07/2024 - Ciccio_54 ha scritto:

    ….“Io ho una Query (Contratti Query) che mi filtra i contratti scaduti, e io, record per record, devo comunicare ai singoli consulenti quali sono i loro contratti scaduti: come faccio ad analizzare un record alla volta?”…..

    Prova a pubblicare il codice sql della query che stai utilizzando, altrimenti non si riesce a capire molto.

    SELECT Fornitori.[Cognome e nome o ragione sociale], IIf([Effettuata 1ª]=True And [Chiusa 1ª]=False,Date()-[1ª sorv],IIf([Effettuata 2ª]=True And [Chiusa 2ª]=False,Date()-[2ª sorv],0)) AS Giorni, Anagrafica.[Rag Sociale], IIf([Giorni]>179,"Scaduto",IIf([Giorni]>89,"Sospeso")) AS Stato, Fornitori.[E-Mail], Mid$([Raggrupp],10,255) AS Norme
    FROM ((Contratti INNER JOIN Fornitori ON Contratti.Intermediario = Fornitori.ID) INNER JOIN [Norme raggruppate] ON Contratti.[Norme totali] = [Norme raggruppate].ID_Raggrupp) INNER JOIN Anagrafica ON Contratti.Cliente = Anagrafica.ID
    WHERE (((IIf([Effettuata 1ª]=True And [Chiusa 1ª]=False,Date()-[1ª sorv],IIf([Effettuata 2ª]=True And [Chiusa 2ª]=False,Date()-[2ª sorv],0)))>89) AND ((Contratti.Validità)="In corso") AND (([Emissione LL-C]+[Emissione Global]+[1ª LL-C]+[1ª Global]+[2ª LL-C]+[2ª Global])>1) AND ((Contratti.Ente)="LL-C" Or (Contratti.Ente)="Global Italy") AND ((IIf([Chiusa 1ª]=True And [Chiusa 2ª]=True,1,2))>1))
    ORDER BY Fornitori.[Cognome e nome o ragione sociale], IIf([Effettuata 1ª]=True And [Chiusa 1ª]=False,Date()-[1ª sorv],IIf([Effettuata 2ª]=True And [Chiusa 2ª]=False,Date()-[2ª sorv],0)) DESC;

  • Re: Utilizzo corretto di next record.

    Comunque non ha importanza quale sia la Query, io chiedo solo di poter aprire una qualsiasi Query e di importare alcuni campi record per record.

  • Re: Utilizzo corretto di next record.

    Quindi dalla query crei il csv e dal csv vuoi estrapolare i dati?

    Sarebbe come andare in centro in auto per posteggiare in periferia e tornare in centro a piedi…

    Così come dalla sql crei il csv applichi n volte il filyro e di volta in volta esporti in csv dando come nome qualcosa che ti ricorda a chi inviarlo via mail e invii la mail allegando il file csv.

  • Re: Utilizzo corretto di next record.

    Guarda Ciccio, senza polemica, non si sta capendo nulla.

    Per eseguire la query (su Access??) hai usato un recordset? Sì? Puoi dunque scorrere con i metodi opportuni (MoveNext) il recordset per avere le singole righe.

    Ma tu non hai mostrato come hai eseguito la query in vba, hai mostrato un codice BASIC anni '80 che legge da un file di testo.

    Come si capisce quello che vuoi fare?

  • Re: Utilizzo corretto di next record.

    05/07/2024 - Ciccio_54 ha scritto:


    Comunque non ha importanza quale sia la Query, io chiedo solo di poter aprire una qualsiasi Query e di importare alcuni campi record per record.

    Per prima cosa definisci i tuoi recordset.

    Il primo sarà la tua query, mentre il secondo sarà la tabella dove inserire i campi da importare

    Per esempio:

    Dim strSql As String
    
    StrSql = TuaQuery
    
    Dim Rs1 As DAO.Recordset, Rs2 As DAO.Recordset
    
    Set Rs1 = db.OpenRecordset(StrSql, dbOpenDynaset)
    Set Rs2 = db.OpenRecordset(“TuaTabellaDove Importare”, dbOpenDynaset)
    

    Successivamente inserisci le istruzioni per importare I campi desiderati:

    Rs1.MoveFirst
    Do While Not Rs1.EOF
    	Rs2.AddNew
    	Rs2!TuoCampo = Rs1!CampoDaCopiare
    	…..ecc. per altri campi
    	Rs2.Update
        Rs1.MoveNext
    ……
    

    Partendo da queste semplici righe di codice puoi poi eventualmente implementare la funzione secondo le tue necessità.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - ettore56 ha scritto:


    Partendo da queste semplici righe di codice puoi poi eventualmente implementare la funzione secondo le tue necessità.

    Non sono sicuro che intenda questo, dato che non dice dove deve importare i dati.

  • Re: Utilizzo corretto di next record.

    I dati non li devo trasferirli, ma memorizzarli il tempo necessario a comporre una e-mail e inviarla.

    Ora provo con la procedura suggerita da Ettore56 e vi faccio sapere.

  • Re: Utilizzo corretto di next record.

    05/07/2024 - Ciccio_54 ha scritto:


    I dati non li devo trasferirli, ma memorizzarli il tempo necessario a comporre una e-mail e inviarla.

    Faccio una gran fatica a cercare di capire questa logica…. Ma non ci riesco. Io passo.

  • Re: Utilizzo corretto di next record.

    Io non ho capito nè la logica nè tutto il resto…

    Passo anche io

Devi accedere o registrarti per scrivere nel forum
30 risposte