Logica di un database! Help

Tanto lo so che sta sezione ci vuole su tutti i forum! :D
Rispondi
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Logica di un database! Help

Messaggio da Maverick »

Allora sta domanda la faccio piu per fede che per voi, anche se in realtà non credo sia necessario conoscere i database, quanto la logica con cui questa operazione va fatta!

Allora il quesito è questo:

Ho 2 database contenti 2 valori diversi. I pagamenti verso un ENTE A, e i pagamenti verso un ENTE B!

Ora ci sono dei clienti che possono trovarsi in questa situazione:

1) Pagano solo l'ENTE A
2) Pagano solo l'ENTE B
3) Pagano entrambi gli enti.

Cosa devo ottenere?

Devo tirare fuori, divisi per provincia, le persone che pagano o solo l'ente A, o solo l'ente B o entrambe, credo secondo la richiesta che fa il capo.

Ma se non ho un campo chiave, cioè univoco per entrambi i database, come faccio a fare una query che mi filtri i risultati?
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Marino();
Saikyou No Senshi
Saikyou No Senshi
Messaggi: 7581
Iscritto il: sab 25 gen, 2003 7:53 pm
Località: Sbarre (RC)

Messaggio da Marino(); »

non è molto chiaro :nonso: non hai possibilità di postare la struttura delle tabelle?
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

eh domani vedo se riesco a postarle!
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

si, cioè.. non ho ancora visto a video la situazione, quindi non so dirti se siano 2 db diversi o lo stesso db con 2 tabelle dentro diverse!

Cmq si, possono essere campi diversi, ma non tutti! La ragione sociale, la partita iva, il codifce fiscale, quelli ci sono in tutti e 2, ma ovviamente se uno paga A e non paga B lo troviamo solo nella tabella corrispondente.

E quello è esattamente quello che devo scoprire, chi paga cosa o se non paga affatto.
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

allora domani nel dettaglio vedo la cosa e posto la struttura! :)
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

Allora il progetto è cosi:

Ho 3 database.

nel database 1 ho 3 tabelle, ma di queste 3 me ne servirà solo una, che contiene nome e cognome delle persone che sono iscritte e paganti.

nel database 2 ho una tabella con l'anagrafica delle sole persone che pagano un'altra quota

MI SERVE quindi un terzo database d'appoggio, dove dentro ho 2 tabelle:

- la tabella persone, che contiene i dati di tutti i soci
- la tabella ditte, che contiene tutte le società

Ora qua la mia collega dice di fare cosi:

1) confrontare la tabella del database 1 con la tabella persone del database 3, in modo da ottenere la matricola di tutte le persone che pagano la prima
quota.

2) confrontare il risultato ottenuto con la tabella ditte, in modo da ottenere la partita IVA delle ditte

3) confrontare la il risultato ottenuto con la tabella del database 2 per vedere chi paga la seconda quota

possono esserci però dei doppioni, perchè magari una persona è socia di piu ditte.. questo poi è da vedere come vorranno intervenire

tutti quelli che rimangono fuori non pagano l'uno o l'altro.

Piu chiaro?
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

ok ragazzi ora mi hanno dato delle informazioni piu chiare, sarebbe di grande aiuto nonchè molto apprezzato se mi deste delle indicazioni, visto che devo lavorare su access e l'ultimo lavoro l'ho fatto 10 anni fa..

allora la questione è questa:

ho una tabella con dentro dei campi che mi serviranno per generare un codice che andrà su di un tesserino.
tra i campi presenti quelli che mi interessano sono

tra parentesi la lunghezza del campo

-codiceprovincia(3) --> che sarà il primo numero del tesserino
-codiceprogressivo(6) --> un numero che va da 000001 a 999999 per ogni provincia (ovviamente può essere minore)
-con(3) ---> un numero identificativo dell'attività economica
-numfut(3) ---> per ora deve essere 000
-controllo(1) ---> che sarà un carattere di controllo che dovrò inventare io
-codtessera(16) --> che conterrà il codice finale che racchiude i campi sopracitati in uno unico

Ora cosa devo ottenere?

1)devo aggiornare la tabella e dare ad ogni provincia un numero progressivo come specificato SE il codiceprogressivo NON FOSSE gia presente, ed in quel caso sarebbe completo su tutta la provincia

2)aggiornare il con (codice dell'attività economica) in questo modo:
----2a) se presente lasciare cosi
----2b) se mancante in quel record ma presente su un altro record della stessa provincia copiarlo
----2c) se completamente mancante porre degli 000

3) inventarmi un codice di controllo, di UNA sola cifra, con la più ampia libertà!

Infine, il tutto deve andare a riempire la tabella codtessera, che sarà di 16 caratteri!

Grazie per la collaborazione ed estrema disponibilità!


FEDE SAREBBE GRADITISSIMA TUA CONSULENZA NONCHè MOLTO APPREZZATA! :)
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

10x
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

se ti colleghi ho anche il db da passarti, l'ho ridotto a soli 4 mega :)
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

bè che dire.. dopo aver fatto 3/4 di programma quando stavo per completare mi dicono che non serve piu.. si scusano ma non serve piu.. si erano capiti male..

ma :gesu: :miao:
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

Codice: Seleziona tutto

Sub test()


Dim DBCorrente As DAO.Database
Dim Tabella As DAO.Recordset
Dim Parte(1 To 5) As String
Dim Contatore
Dim valore
Dim i, app
Dim z
valore = 0
z = 1
'Apertura DB
Set DBCorrente = CurrentDb

'Apertura tabella
Set Tabella = DBCorrente.openrecordset("STR Soci", DBopendynaset)

app = Tabella.Fields("ccp") 'definisco una variabile di appoggio per il campo ccp
'Lettura dati
Do Until Tabella.EOF
    Contatore = Contatore + 1
    If Contatore = 10 Then
          Contatore = 1
    End If

    If app = Tabella.Fields("ccp") Then
        If IsNull(Tabella.Fields("progr")) Then
            i = i + 1
            z = 1
         Else: i = 0
            app = Tabella.Fields("ccp")
            z = 1
         End If
   Else: app = Tabella.Fields("ccp")
   i = 0
   z = 0
   End If
   If z = "1" Then
    Parte(1) = Tabella.Fields("CCP") 'prima parte codice Campo CCP
    Parte(2) = Format(i, "000000")        'da definire Progressivo
    Parte(3) = 321 'da definire Con
    Parte(4) = Format(valore, "000")    'numfut
    Parte(5) = Contatore 'numero di controllo

    'inserisco il codice
    Tabella.Edit
    Tabella.Fields("CodTessera") = Parte(1) & Parte(2) & Parte(3) & Parte(4) & Parte(5)
    Tabella.Update
    'vai al dato successivo
    Tabella.MoveNext
    Else
    End If
Loop


'Chiusura tabella
Tabella.Close
'Chiusura DB
DBCorrente.Close


End Sub
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

XD
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
Avatar utente
Maverick
Principe dei Sayan
Messaggi: 19859
Iscritto il: sab 19 gen, 2002 3:34 pm
Contatta:

Messaggio da Maverick »

il programma completato

Codice: Seleziona tutto

Sub test()


Dim DBCorrente As DAO.Database
Dim Tabella As DAO.Recordset
Dim Parte(1 To 5) As String
Dim Contatore
Dim valore
Dim i, app
Dim z
Dim appfunz
valore = 0
z = 1
i = 1234

'Apertura DB
Set DBCorrente = CurrentDb

'Apertura tabella
Set Tabella = DBCorrente.openrecordset("STR Soci", DBopendynaset)

app = Tabella.Fields("ccp") 'definisco una variabile di appoggio per il campo ccp
'Lettura dati
Do Until Tabella.EOF
    
If IsNull(Tabella.Fields("ccp")) Then
    z = 0
    Tabella.MoveNext
   
    Else
        If Tabella.Fields("ccp") = "049" Or Tabella.Fields("ccp") = "024" Or Tabella.Fields("ccp") = "097" Or Tabella.Fields("ccp") = "205" Then
        z = 1
        i = Tabella.Fields("progr")
        'tabella.MoveNext
        Else
            If app = Tabella.Fields("ccp") Then
            If IsNull(Tabella.Fields("progr")) Then
            i = i + 1
            z = 1 'questo è uno switch per capire se deve scrivere o meno
         Else:
            'app = Tabella.Fields("ccp")
            'z = 1 'questo è uno switch per capire se deve scrivere o meno
            'i = Tabella.Fields("progr")
         End If
   Else: app = Tabella.Fields("ccp")
   i = 1234
   z = 0
   End If
End If

End If
   If z = "1" Then
    Parte(1) = Tabella.Fields("CCP") 'prima parte codice Campo CCP
        
    Parte(2) = Format(i, "0000000")        'da definire Progressivo
    
    Parte(4) = Format(valore, "0")    'numfut
    
   ' Call fSumChar(Parte(1))
    'appfunz = fSumChar(Parte(1))
    'call fSumChar(Parte(2))
    
    appfunz = fSumChar(Parte(1)) + fSumChar(Parte(2)) 'numero di controllo
    Parte(5) = CByte(Right$(appfunz & "", 1))
    'inserisco il codice
    Tabella.Edit
    Tabella.Fields("CodTessera") = Parte(1) & Parte(2) & Parte(4) & Parte(5)
    Tabella.Update
    'vai al dato successivo
    Tabella.MoveNext
    Else
    End If
Loop


'Chiusura tabella
Tabella.Close
'Chiusura DB
DBCorrente.Close


End Sub

Function fSumChar(varNum As Variant) As Long
    Dim strNum  As String
    Dim iCount  As Integer
    Dim iLen    As Integer
    Dim lSum    As Long
    If Fix(varNum) <> varNum Then
        'MsgBox "NUMERO DECIMALE non valido", vbCritical, "AVVISO"
        'fSumChar = 0
        'Exit Function
    End If
    strNum = CLng(varNum) & ""
    iLen = Len(strNum)
    For iCount = 1 To iLen
        lSum = lSum + CByte(Mid$(strNum, iCount, 1))
    Next
    fSumChar = lSum
    
End Function
Immagine

il cervello l'ha cestinato - ® Luc 2010!

[9.25.15] Luc´: oggi si sposa mio cugino
[9.25.21] Luc´: mi tocca leggere in chiesa -.-
xedin
Saikyou No Senshi
Saikyou No Senshi
Messaggi: 130321
Iscritto il: sab 13 apr, 2024 11:15 am

Re: Logica di un database! Help

Messaggio da xedin »

xedin
Saikyou No Senshi
Saikyou No Senshi
Messaggi: 130321
Iscritto il: sab 13 apr, 2024 11:15 am

Re: Logica di un database! Help

Messaggio da xedin »

audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.ru
nameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.runavelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.ru
papercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.ru
rectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.ru
stungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkasultramaficrock.ruultraviolettesting.ru
Rispondi