Query modificate in contemporanea da 2 PC

di il
5 risposte

Query modificate in contemporanea da 2 PC

Ciao a tutto il Forum... mi sono appena iscritto anche se in realtà seguo da molto tutte le vostre spiegazioni che mi hanno sempre aiutato a risolvere dubbi e lacune. Grazie sinceramente a tutti voi

Avrei un quesito da porvi visto che da solo non riesco ad andarne a capo.
Non sono un programmatore professionale, ma in qualche modo riesco quasi sempre (anche se non in modo corretto) ad ottenere il risultato che mi serve.

Ho un programma suddiviso in interfaccia grafica su 2 PC terminali e la parte Tabelle collegate in rete.
Tramite una query di selezione, è possibile selezionare tramite caselle Si/No determinati record da portare in stampa.
Fino a questo punto funziona tutto OK.
Il problema si presente quando adoperiamo il programma in contemporanea su entrambe i pc. Mi spiego meglio con un esempio...

Se sul pc1 seleziono il record 1 2 e 3 tramite la casella ed allo stesso modo sul pc2 seleziono la casella 4 5 e 6, purtroppo
sia sul PC1 che sul PC2 vedo tutti e 6 i record selezionati, mentre in realtà io vorrei vedere solamente i record scelti 1.2.3 sul pc1 e non anche il 4.5.6 così come nel pc2 vorrei si vedessero solamente i record selezionati 4 .5.6 senza visualizzare 1.2.3

Perdonatemi il giro di parole

Magari la questione da risolvere è molto più semplice di quanto io possa credere, ma sinceramente per ora se qualcuno non mi schiarisce le idee, da solo non ci arrivo !

1000 grazie a tutti.

5 Risposte

  • Re: Query modificate in contemporanea da 2 PC

    Ovviamente se non gestisci l'accesso concorrente... ma nel tuo caso la soluzione più funzionale sarebbe usare una LISTBOX a selezione Multipla estesa che chiaramente non modifica i dati del BE e ti consente di selezionare i dati da stampare... in modo indipende re su ogni macchina.
  • Re: Query modificate in contemporanea da 2 PC

    Grazie Alex per la risposta, in effetti ad una ListBox non ci avevo pensato, tuttavia credo che per la quantità elevata di colonne da visualizzare, risulterebbe molto pesante.
    Ora il tutto viene gestito tramite maschere continue con tutti i campi in sola lettura tranne la casella di selezione record.
    Successivamente al termine della selezione dei record contrassegnati come True, genero una query con la sola lista da stampare che ovviamente risulta composta dai soli record selezionati.

    Come riuscirei ad ottenere lo stesso risultato con una ListBox e specialmente senza che i miei record del PC1 non siano visibili nel PC 2 a meno che un record specifico o più non siano selezionato da ambo i PC ? Intendi forse tramite la selezione ListIndex ?
    Perdonami se conosco poco le abbreviazioni o i termini corretti, ma cosa intenderesti per "BE" ?
  • Re: Query modificate in contemporanea da 2 PC

    Come ri ho gia esposto la listbox assolve a tutto con qualche limite grafico se proprio vogliamo vedere...

    Non comprendo la tua perplessità...
    La listbox con se re la selezione multipla estesa che viene raccolta nella collection ITEMSSELECTED.
    Iterando la collection puoi costruire il criterio per la query dei selezionati... con una struttura ripo:
    
    SELECT * FROM T1
    WHERE NomeCampo IN (Valore1, Valore2, ValoreN) Orderby Campo
    Come vedi devi solo ricavare l'elenco dei valori fattibile con u ciclo di 3 righe si codice.

    La tecnica è questa
    http://forum.masterdrive.it/access-79/listbox-selezione-multipla-estesa-per-filtrare-form-73537/
    Una volta ricavato il predicato SQL lo si assegna alla query... sempre serva ... perché ti ricordo che un report si può aprire con un parametro WHERE...
  • Re: Query modificate in contemporanea da 2 PC

    Ci ho provato ed il risultato potrebbe essere ok, ma è sorto un nuovo inghippo che non riesco ad eliminare.
    La (Query_X) è inserita dentro la ListBox ed ha sei campi di cui uno è "Comune".
    Ho una Tabella generale che chiamerò (Tab_x) ed un altra per i comuni che chiamerò (Tab_Comuni)
    La (Tab_Comuni) e formata da 2 colonne di cui la prima e "ID" e la seconda è il "nome comune"
    Poichè la (Query_X) è formata da (Tab_X) e (Tab_Comuni), (Tab_Comuni) è relazionata al campo (Tab_X.Comune) ovviamente numerico.

    Il campo Comune nella (Query_X) è impostato come numerico ed associato alla colonna 1 ma visibile colonna 2.

    Se eseguo la (Query_X) esternamente alla ListBox funziona perfettamente, ma se la stessa query la visualizzo nella ListBox al posto dei comuni vedo il numero ID.

    Nella ListBox nell'SQL alle proprietà del campo Comune, ho provato a convertire il campo testo in CmbBox associando la colonna 1 e visualizzando solamente colonna 2, ma mi dice che il campo è solo numerico ...
    Non ne esco ed è per questo ho sempre dato priorità alle maschere continue piuttosto che alla ListBox

    Qualche dritta tu che sei MOLTO più esperto di me ??? Sono sicuro che sbaglio in qualche punto ma non riesco a vedere l'errore.
  • Re: Query modificate in contemporanea da 2 PC

    NOn ho capito proprio NULLA... ma cosa c'entra l'Origine RIga della ListBox con la Query da usare per aprire un REPORT...?
    Oltretutto ti ho fatto notare che non serve affatto una Query per filtrare il REPORT... e questo è un suggerimento di ottimizzazione che faresti meglio a seguire e capire...
    Se usila tecnica di passare la WHERE condition alla chiamata OpenReport, potrai sfruttarla in altri modi per aprire il Report passando da qualsiasi parte un criterio senza dover scrivere una Query...
Devi accedere o registrarti per scrivere nel forum
5 risposte