Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Word non trova la query del mio db

  1. #1
    Falco69 non è in linea Scolaretto


    ciao! innanzitutto ringrazio già tutti.

    premetto so come fare a legare word con access nella stampa unione....
    ho letto un pò qua ed un pò ma non sono riuscito a trovare un problema simili al mio...

    descrizione:
    ho un query di selezione che prende i dati dalla tb principale (non relazionata)
    all'interno della query eseguo molti calcoli ed uso parecchio la condizione iif...
    tutto funziona perfettamente...
    adesso devo inserire i dati in una lettera word... so come trovare l'origine dati e come inserire i campi...
    (è facile è quasi automatizzata la procedura! )
    il problema viene adesso al momento di cercare l'origine dei dati selezione il mio db vedo tante query e tabelle, tra cui la principale, ma non trovo la mia query che mi serve...

    qualcuno sa dirmi dove sbaglio o cosa ????

    premetto il modulo con applico la trasformazione degli importi in lettere lo preso dal forum... è perfetto per le mie esigenze

    posto la query in sql (non so in che altro modo)

    PS: non ridete grazie.... per le mie capacità è tanto...

    SELECT [Cognome] & " " & [Nome] & " " & [Nato] & " " & [il] AS Esteso, IIf([Trasgressore/OS]=True," MEDESIMO",([CognomeOS] & " " & [NomeOS] & " " & [NatoOS] & " " & [ilOS])) AS EstesoOS, [IntestatarioPG] & " " & [PartitaIVA/CF] AS SocietàOS, "NrS6 " & [S6] & "/" & [Anno] & " - NrCdS " & [NumeroCdS] & "/" & [Anno] & " - " & [Data] & " - " & [località] AS EstesoCdS, [Art1] & " - " & [C1] & " - " & [SanzioniAcc1] AS EstesoArt1, [Art2] & " - " & [C2] & " - " & [SanzioniAcc2] AS EstesoArt2, [Art3] & " - " & [C3] & " - " & [SanzioniAcc3] AS EstesoArt3, T_CDSPrincipale.S6, T_CDSPrincipale.Anno, T_CDSPrincipale.CodiceReparto, T_CDSPrincipale.località, T_CDSPrincipale.NumeroCdS, T_CDSPrincipale.Data, T_CDSPrincipale.Cognome, T_CDSPrincipale.Nome, T_CDSPrincipale.Nato, T_CDSPrincipale.LuogoSpecifico, T_CDSPrincipale.Il, T_CDSPrincipale.Residente, T_CDSPrincipale.Indirizzo, T_CDSPrincipale.Documento, T_CDSPrincipale.NumeroDoc, T_CDSPrincipale.Neopatentato, T_CDSPrincipale.[Trasgressore/OS], T_CDSPrincipale.Categoria, T_CDSPrincipale.TipoVeicolo, T_CDSPrincipale.Targa, T_CDSPrincipale.Affidato, T_CDSPrincipale.CognomeOS, T_CDSPrincipale.NomeOS, T_CDSPrincipale.NatoOS, T_CDSPrincipale.LuogoSpecificoOS, T_CDSPrincipale.ilOS, T_CDSPrincipale.IntestatarioPG, T_CDSPrincipale.[PartitaIVA/CF], T_CDSPrincipale.ResidenteOS, T_CDSPrincipale.IndirizzoOS, T_CDSPrincipale.Art1, T_CDSPrincipale.C1, T_CDSPrincipale.Importo1, T_CDSPrincipale.RidA1, T_CDSPrincipale.Nott1, T_CDSPrincipale.DecP1, T_CDSPrincipale.NrP1, T_CDSPrincipale.SanzioniAcc1, IIf([SanzioniAcc1]="Fermo 30 giorni",[Data]+30,(IIf([SanzioniAcc1]="Fermo 60 giorni",[Data]+60,(IIf([SanzioniAcc1]="Fermo 90 giorni",[Data]+90,IIf([SanzioniAcc1]="Fermo 1 mese",DateAdd("m",1,[Data]),(IIf([SanzioniAcc1]="Fermo 2 mesi",DateAdd("m",2,[Data]),(IIf([SanzioniAcc1]="Fermo 3 mesi",DateAdd("m",3,[Data]))))))))))) AS ScadeFermo1, IIf([Art1]=193 And [C1]="2" And [SanzioniAcc1]="Sequestro",[Data]+30,"") AS Rott1, IIf([Art1]=193 And [C1]="2" And [SanzioniAcc1]="Sequestro",[Data]+60,"") AS Disseq1, Cifre2Lettere([Importo1]) AS Imp1Lett, Cifre2Lettere([Riduzione1]) AS Rid1Lett, Cifre2Lettere([ImpNott1]) AS ImpNott1Lett, Cifre2Lettere([RidNott1]) AS RidNott1Lett, T_CDSPrincipale.Art2, T_CDSPrincipale.C2, T_CDSPrincipale.Importo2, T_CDSPrincipale.RidA2, T_CDSPrincipale.Nott2, T_CDSPrincipale.DecP2, T_CDSPrincipale.NrP2, T_CDSPrincipale.SanzioniAcc2, IIf([SanzioniAcc2]="Fermo 30 giorni",[Data]+30,(IIf([SanzioniAcc2]="Fermo 60 giorni",[Data]+60,(IIf([SanzioniAcc2]="Fermo 90 giorni",[Data]+90,IIf([SanzioniAcc2]="Fermo 1 mese",DateAdd("m",1,[Data]),(IIf([SanzioniAcc2]="Fermo 2 mesi",DateAdd("m",2,[Data]),(IIf([SanzioniAcc2]="Fermo 3 mesi",DateAdd("m",3,[Data]))))))))))) AS ScadeFermo2, IIf([Art2]=193 And [C2]="2" And [SanzioniAcc2]="Sequestro",[Data]+30,"") AS Rott2, IIf([Art2]=193 And [C2]="2" And [SanzioniAcc2]="Sequestro",[Data]+60,"") AS Disseq2, Cifre2Lettere([Importo2]) AS Imp2Lett, Cifre2Lettere([Riduzione2]) AS Rid2Lett, Cifre2Lettere([ImpNott2]) AS ImpNott2Lett, Cifre2Lettere([RidNott2]) AS RidNott2Lett, T_CDSPrincipale.Art3, T_CDSPrincipale.C3, T_CDSPrincipale.Importo3, T_CDSPrincipale.RidA3, T_CDSPrincipale.Nott3, T_CDSPrincipale.DecP3, T_CDSPrincipale.NrP3, T_CDSPrincipale.SanzioniAcc3, IIf([SanzioniAcc3]="Fermo 30 giorni",[Data]+30,(IIf([SanzioniAcc3]="Fermo 60 giorni",[Data]+60,(IIf([SanzioniAcc3]="Fermo 90 giorni",[Data]+90,IIf([SanzioniAcc3]="Fermo 1 mese",DateAdd("m",1,[Data]),(IIf([SanzioniAcc3]="Fermo 2 mesi",DateAdd("m",2,[Data]),(IIf([SanzioniAcc3]="Fermo 3 mesi",DateAdd("m",3,[Data]))))))))))) AS ScadeFermo3, IIf([Art3]=193 And [C3]="2" And [SanzioniAcc3]="Sequestro",[Data]+30,"") AS Rott3, IIf([Art3]=193 And [C3]="2" And [SanzioniAcc3]="Sequestro",[Data]+60,"") AS Disseq3, Cifre2Lettere([Importo3]) AS Imp3Lett, Cifre2Lettere([Riduzione3]) AS Rid3Lett, Cifre2Lettere([ImpNott3]) AS ImpNott3Lett, Cifre2Lettere([RidNott3]) AS RidNott3Lett, Cifre2Lettere([Rott30gg]) AS Rott30ggLett, Cifre2Lettere([Rott5gg]) AS Rott5ggLett, T_CDSPrincipale.ObbligoPres, IIf([ObbligoPres]=True,[Data]+30,"") AS Scade, T_CDSPrincipale.[Notificato Mezzo], T_CDSPrincipale.Notificato, T_CDSPrincipale.Ricorso, T_CDSPrincipale.TipoRicorso, T_CDSPrincipale.Capopattuglia, T_CDSPrincipale.Note, T_CDSPrincipale.Fascicolo, T_CDSPrincipale.Compilatore, T_CDSPrincipale.Redatto180, T_CDSPrincipale.Esibito, T_CDSPrincipale.S6Terminali, T_CDSPrincipale.Provvedimento, T_CDSPrincipale.ProvvedNr, T_CDSPrincipale.ProvvData, T_CDSPrincipale.NotificaProvv, T_CDSPrincipale.RateNrSospMesi, T_CDSPrincipale.ProvvTerminali, IIf([Provvedimento]="Sosp. Patente",DateAdd("m",[RateNrSospMesi],[NotificaProvv]),(IIf([Provvedimento]="Sosp. Patente NO Ritiro",DateAdd("m",[RateNrSospMesi],[Data]),(IIf([Provvedimento]="Confisca",[NotificaProvv]+30))))) AS ScadeProvv, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,2 0,21,22,23,24),[NotificaProvv]+30) AS R1, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 21,22,23,24),[NotificaProvv]+60) AS R2, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 ,22,23,24),[NotificaProvv]+90) AS R3, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,2 2,23,24),[NotificaProvv]+120) AS R4, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, 23,24),[NotificaProvv]+150) AS R5, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 ,24),[NotificaProvv]+180) AS R6, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,2 4),[NotificaProvv]+210) AS R7, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) ,[NotificaProvv]+240) AS R8, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+270) AS R9, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (10,11,12,13,14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+300) AS R10, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (11,12,13,14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+330) AS R11, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (12,13,14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+360) AS R12, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (13,14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+390) AS R13, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (14,15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+420) AS R14, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (15,16,17,18,19,20,21,22,23,24),[NotificaProvv]+450) AS R15, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (16,17,18,19,20,21,22,23,24),[NotificaProvv]+480) AS R16, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (17,18,19,20,21,22,23,24),[NotificaProvv]+510) AS R17, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (18,19,20,21,22,23,24),[NotificaProvv]+540) AS R18, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (19,20,21,22,23,24),[NotificaProvv]+570) AS R19, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (20,21,22,23,24),[NotificaProvv]+600) AS R20, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (21,22,23,24),[NotificaProvv]+630) AS R21, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (22,23,24),[NotificaProvv]+660) AS R22, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (23,24),[NotificaProvv]+690) AS R23, IIf([Provvedimento]="Rateizzazione" And [RateNrSospMesi] In (24),[NotificaProvv]+720) AS R24, T_CDSPrincipale.ProvvEmesso, T_CDSPrincipale.ProvvImporto, Cifre2Lettere([ProvvImporto]) AS ProvvImportoLett, T_CDSPrincipale.CodiceTributo, CStr([Data]) AS DataTesto, CStr([Il]) AS IlTesto, CStr([ilOS]) AS IlOSTesto, CStr(Round(IIf([RidA1]=True,([Importo1]-(([Importo1]*30)/100)),""))) AS Riduzione1, CStr(Round(IIf([Nott1]=True,[Importo1]/3),2)) AS ImpNott1, CStr(Round(IIf([Nott1]=True,([ImpNott1]-([ImpNott1]*30)/100)),2)) AS RidNott1, CStr([ScadeFermo1]) AS ScadeFermo1Testo, CStr([Rott1]) AS Rott1Testo, CStr([Disseq1]) AS Disse1Testo, CStr(Round(IIf([RidA2]=True,([Importo2]-(([Importo2]*30)/100)),""))) AS Riduzione2, CStr(Round(IIf([Nott2]=True,[Importo2]/3),2)) AS ImpNott2, CStr(Round(IIf([Nott2]=True,([ImpNott2]-([ImpNott2]*30)/100)),2)) AS RidNott2, CStr([ScadeFermo2]) AS ScadeFermo2Testo, CStr([Rott2]) AS Rott2Testo, CStr([Disseq2]) AS Disseq2Testo, CStr(Round(IIf([RidA3]=True,([Importo3]-(([Importo3]*30)/100))),"")) AS Riduzione3, CStr(Round(IIf([Nott3]=True,[Importo3]/3),2)) AS ImpNott3, CStr(Round(IIf([Nott3]=True,([ImpNott3]-([ImpNott3]*30)/100)),2)) AS RidNott3, CStr([ScadeFermo3]) AS ScadeFermo3Testo, CStr([Rott3]) AS Rott3Testo, CStr([Disseq3]) AS Disseq3Testo, CStr(Round(IIf(([Art1]=193) And ([C1]="2"),[Importo1]/4,IIf(([Art2]=193) And ([C2]="2"),[Importo2]/4,IIf(([Art3]=193) And ([C3]="2"),[Importo3]/4))),2)) AS Rott30gg, CStr(Round(([Rott30gg]-([Rott30gg]*30)/100),2)) AS Rott5gg, CStr([Scade]) AS ScadeTesto, CStr([Notificato]) AS NotificatoTesto, IIf([Fascicolo]=26,"di prot.","di sched.") AS ProtSched, CStr([ProvvData]) AS ProvvDataTesto, CStr([NotificaProvv]) AS NotificaProvvTesto, CStr([ScadeProvv]) AS ScadeProvvTesto, CStr([R1]) AS R1Testo, CStr([R2]) AS R2Testo, CStr([R3]) AS R3Testo, CStr([R4]) AS R4Testo, CStr([R5]) AS R5Testo, CStr([R6]) AS R6Testo, CStr([R7]) AS R7Testo, CStr([R8]) AS R8Testo, CStr([R9]) AS R9Testo, CStr([R10]) AS R10Testo, CStr([R11]) AS R11Testo, CStr([R12]) AS R12Testo, CStr([R13]) AS R13Testo, CStr([R14]) AS R14Testo, CStr([R15]) AS R15Testo, CStr([R16]) AS R16Testo, CStr([R17]) AS R17Testo, CStr([R18]) AS R18Testo, CStr([R19]) AS R19Testo, CStr([R20]) AS R20Testo, CStr([R21]) AS R21Testo, CStr([R22]) AS R22Testo, CStr([R23]) AS R23Testo, CStr([R24]) AS R24Testo
    FROM T_CDSPrincipale
    ORDER BY T_CDSPrincipale.S6;

  2. #2
    Falco69 non è in linea Scolaretto
    inghippo trovato!

    è l'uso della funzione modulo che mi trasforma gli importi in lettere...

    ma come risolvo?

    ho provato a chiudere la funzione tra CStr() NULLA

    ====== modulo=======

    Option Compare Database
    
    Option Explicit
            Private Function Unita(ByVal k As Integer) As String
                Dim Lettere() As String
                Lettere = Split(",uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove", ",")
                If (k < 0) Or (k > UBound(Lettere)) Then
                    Unita = ""
                Else
                    Unita = Lettere(k)
                End If
            End Function
     
            Private Function Decine(ByVal k As Integer) As String
                Dim Lettere() As String
                Lettere = Split(",dieci,venti,trenta,quaranta,cinquanta,sessanta,settanta,ottanta,novanta", ",")
                If (k < 0) Or (k > UBound(Lettere)) Then
                    Decine = ""
                Else
                    Decine = Lettere(k)
                End If
            End Function
     
            Private Function Migliaia(ByVal k As Integer) As String
                Dim Lettere() As String
                Lettere = Split(",mille,unmilione,unmiliardo,millemiliardi,mila,milioni,miliardi,milamiliardi,milamiliardi,migliaiadimiliardi", ",")
                If (k < 0) Or (k > UBound(Lettere)) Then
                    Migliaia = ""
                Else
                    Migliaia = Lettere(k)
                End If
            End Function
           
     
            Private Function CalcolaLettere(ByVal Importo As Currency) As String
                Dim result As String
                result = ""
                Dim intero As String
                intero = Format(Importo, "0.00")
                Dim resto As String
                resto = "/" + Right(intero, 2)
                intero = Left(intero, Len(intero) - 3)
                If Left(intero, 1) = "-" Then
                    intero = Mid(intero, 2)
                End If
                If Importo = 0 Then
                    CalcolaLettere = "zero/00"
                    Exit Function
                End If
                Dim mille As Integer
                mille = -1
                Dim k As Integer
                k = Len(intero) Mod 3
                If Not (k = 0) Then
                    intero = String(3 - k, "0") + intero
                End If
                While Not (intero = "")
                    mille = mille + 1
                    Dim parziale As String
                    parziale = ""
                    Dim tripla As String
                    tripla = Right(intero, 3)
                    Dim s As String
                    s = ""
                    intero = Left(intero, Len(intero) - 3)
                    Dim tv As Integer
                    tv = CInt(tripla)
                    Dim td As Integer
                    td = tv Mod 100
                    Dim tc As Integer
                    tc = (tv - td) / 100
                    If Not (tc = 0) Then
                        parziale = "cento"
                        If tc > 1 Then
                            parziale = Unita(tc) + parziale
                        End If
                    End If
                    If td < 20 Then
                        parziale = parziale + Unita(td)
                    Else
                        Dim x As Integer
                        x = td Mod 10
                        Dim y As Integer
                        y = (td - x) / 10
                        parziale = parziale + Decine(y)
                        s = Unita(x)
                        If (InStr(1, "uo", Left(s, 1)) <> 0) And (s <> "") And (Not (y = 0)) Then
                           parziale = Left(parziale, Len(parziale) - 1)
                        End If
                        parziale = parziale + s
                    End If
                    s = Migliaia(mille)
                    If (mille > 0) And (Not (parziale = "")) Then
                        k = mille
                        If Not (parziale = "uno") Then
                            k = k + 4
                            s = Migliaia(k)
                            If Right(parziale, 3) = "uno" Then
                                parziale = Left(parziale, Len(parziale) - 1)
                            End If
                        Else
                            parziale = ""
                        End If
                        parziale = parziale + s
                    End If
                    result = parziale + result
                Wend
                If Importo < 0 Then
                    result = "meno" + result
                End If
                CalcolaLettere = result + resto
            End Function
            Public Function Cifre2Lettere(ByVal Importo As Currency) As String
                Cifre2Lettere = CalcolaLettere(Importo)
            End Function
    
    Ultima modifica di AntonioG; 11-11-2014 23:41  Motivo: Usa i tag CODE. Altrimenti il thread viene chiuso.

  3. #3
    Falco69 non è in linea Scolaretto
    ops scusa e grazie

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. VBA trova sostituisci tra word ed excel
    Da firstcode nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 29-03-2016, 11:51
  2. trova valori più vicino al risultato di una query
    Da keccoricci nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 06-06-2015, 17:28
  3. WORD - problemi - pulsante trova/sostituisci
    Da Sir G. nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 13-04-2014, 13:31
  4. Word maschera e query
    Da GRANDEANTONIO nel forum Microsoft Word
    Risposte: 12
    Ultimo Post: 20-04-2011, 12:41
  5. Word: Trova e sostituisci
    Da pasquale nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 28-07-2005, 11:58