title: StoredProcedure a campi incrociati

text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:RjsSa.2051$SN1....@news2.tin.it...

[CUT]
Cia Sib
Quindi si tratta di una Query a campi incrociati dinamica ovvero non sai
quanti anni possono essere totalizzati.
A questo proposito utilizziamo la bellissima Sp tratta da ....
http://www.sqlmag.com/Articles/Index.cfm?ArticleID=15608
Necessita di due piccole modifiche, la prima è racchiudere l'output della
somma tra parentesi quadre altrimenti un alias 2000 viene interpretato come
errore e la seconda è l'inserimento del totale.
Creo la Stored Procedure
--------------------------------------------
CREATE PROCEDURE usp_PivotSum
   @table       AS sysname,        -- Table to crosstab
   @onrows      AS nvarchar(128),  -- Grouping key values (on rows)
   @onrowsalias AS sysname = NULL, -- Alias for grouping column
   @oncols      AS nvarchar(128),  -- Destination columns (on columns)
   @sumcol      AS sysname = NULL  -- Data cells
AS
SET NOCOUNT ON
SET SET ANSI_WARNINGS OFF
DECLARE @sql AS varchar(8000), @NEWLINE AS char(1)
SET @NEWLINE = CHAR(10)
SET @sql = 'SELECT' + @NEWLINE + '  ' + @onrows +
CASE
 WHEN @onrowsalias IS NOT NULL THEN ' AS ' + @onrowsalias
    ELSE ''
END
CREATE TABLE #keys(keyvalue nvarchar(100) NOT NULL PRIMARY KEY)
DECLARE @keyssql AS varchar(1000)
SET @keyssql =
'INSERT INTO #keys ' +
'SELECT DISTINCT CAST(' + @oncols + ' AS nvarchar(100)) ' +
'FROM ' + @table
EXEC (@keyssql)
DECLARE @key AS nvarchar(100)
SELECT @key = MIN(keyvalue) FROM #keys
WHILE @key IS NOT NULL
BEGIN
 SET @sql = @sql + ',' + @NEWLINE +
    '  SUM(CASE CAST(' + @oncols +
                     ' AS nvarchar(100))' + @NEWLINE +
    '        WHEN N''' + @key +
           ''' THEN ' + @sumcol +
    '        ELSE 0'                      + @NEWLINE +
    '      END) AS [' + @key +']'
  SELECT @key = MIN(keyvalue) FROM #keys
  WHERE keyvalue > @key
END
--Riga originale
--SET @sql = @sql         + @NEWLINE +
--Riga modificata per totale
SET @sql = @sql +','+'SUM('+@sumcol+') AS Totale ' + @NEWLINE +
'FROM ' + @table      + @NEWLINE +
'GROUP BY ' + @onrows + @NEWLINE +
'ORDER BY ' + @onrows
-- La print serve per vedere il codice generato
--PRINT @Sql
EXEC (@sql)
------------------------------------
Esecuzione della Sp, a fianco ai parametri ti riporto le definizione delle
pivon in access
----------------------------------
Exec usp_PivotSum
      'ContTess',  -- Tabella
     'Sez_Prov,Sez_Com,Gruppo',      -- Campi intestazione riga
      NULL,      -- Alias intestazione colonna
     'Anno',      -- Intestazione colonna
     'ConteggioDiTessera_n'       -- Valore
----------------------------
Spero che i ritorni a capo non facciano confusione, ho provato il tutto
creando una tabella con i nomi dei campi da te postati quindi ti dovrebbe
funzionare al primo colpo.
Ciao Giorgio


title: StoredProcedure a campi incrociati

author: Sib

text:

In alternativa mi potrei accontentare di un metodo per poter utilizzare il
risultato della sp in una vista o in un'altra sp.
Sib


title: StoredProcedure a campi incrociati

text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
> L'argomento e' stato gia' affrontato e ho pure avuto risposta, ma proprio
e'
> evidente che un mio limite mi impedisce di entrare nella logica.
> Facciamo conto che io voglia, da codice, creare una stored procedure a
campi
> incrociati, qualcuno ne ha una che utilizza di cui mostrarmi il codice sql
> per prenderla come spunto? Puo' darsi che vedendone una (o spero piu')
> funzionante io riesca a capire come fare.
Mi sorge un dubbio:
che alla MS abbiano anche lontanamente immaginato che le maschere "tabella
pivot" siano una soluzione minimamente accettabile del problema?
Sib


title: StoredProcedure a campi incrociati

text:
"Giorgio Prx" <
giorgio...@nospamtiscali.it
> ha scritto nel messaggio
cut
> ----------------------------------
> Exec usp_PivotSum
>       'ContTess',  -- Tabella
>      'Sez_Prov,Sez_Com,Gruppo',      -- Campi intestazione riga
>       NULL,      -- Alias intestazione colonna
>      'Anno',      -- Intestazione colonna
>      'ConteggioDiTessera_n'       -- Valore
> ----------------------------
>
> Spero che i ritorni a capo non facciano confusione, ho provato il tutto
> creando una tabella con i nomi dei campi da te postati quindi ti dovrebbe
> funzionare al primo colpo.
Ti ringrazio molto, si avvicina molto a cio che mi serve.
Scusa se aggiungo tre domande:
Come aggiungi un campo alle intestazioni di riga ?(in realta' mi sono gia'
risposto da solo perche' ho aggiunto qualche riga di codice alla sp per
gestire un nuovo parametro @onrow2)
Come si puo' utilizzare questa sp in una ulteriore sp?
Come affronti in linea di principio questo problema sui tuoi database?
(Scusa ma sono alla fusione, dovrei consegnare qualcosa che faccia finta di
funzionare per martedi', non ce la faro' mai e litighero' col cliente :-( )
Sib


title: StoredProcedure a campi incrociati

author: Giorgio Prx

text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:CTuSa.2753$SN1.1...@news2.tin.it...

Ciao Sib
Vediamo se ho capito
Se a te interessa avere il resultset della sp come se fosse una tabella o
una vista in modo da inserirla in altre select possiamo utilizzare le
tabelle temporanee quindi nei parametri della sp aggiungiamo la tabella di
output
-----------------
ALTER  PROCEDURE usp_PivotSum
   @table       AS sysname,         -- Table to crosstab
   @onrows      AS nvarchar(128),   -- Grouping key values (on rows)
   @onrowsalias AS sysname = NULL,  -- Alias for grouping column
   @oncols      AS nvarchar(128),   -- Destination columns (on columns)
   @sumcol      AS sysname = NULL,  -- Data cells
   @TbTmp       AS sysname          -- Tabella temporanea di output
AS
ecc.. ecc..
....
....
SET @sql = @sql +','+'SUM('+@sumcol+') AS Totale ' + @NEWLINE +
-- e inseriamo INTO
'INTO ' + @TbTmp      + @NEWLINE +
'FROM ' + @table      + @NEWLINE +
'GROUP BY ' + @onrows + @NEWLINE +
'ORDER BY ' + @onrows
--------------
La tua sp chiamante diventa
---------------------------
Exec usp_ContTess
     -- Tabella
     'ContTess',
     -- Campi intestazione riga
     'Sez_Prov,Sez_Com,Gruppo',
     -- Alias intestazione colonna
      NULL,
     -- Intestazione colonna
     'Anno',
     -- Valore
     'ConteggioDiTessera_n',
    -- Tabella temporanea globale con due ##
     '##TempTb'
-- Inserisco i dati in teballa temporanea privata con un #
Select * Into #MiaTmp FROM ##TempTb
-- Elimino tabella temporanea pubblica per renderla libera a altri terminali
DROP TABLE ##TempTb
-- a questo punto ho una tabella privata temporanea da utilizzare in JOIN
con altre tabelle
Select * FROM #MiaTmp
--------------------------------
In linea di principio non uso pivot dinamiche e delimito sempre un delta di
valori (ad esempio 5 o 10 anni) .
Cosě facendo puoi creare una funzione che rende un recordset e che puoi
utilizzare come origine record in JOIN con altre tabelle e intestare le
lable dei report in base al valore @DaAnno
Creazione funzione pivot con delta di 5 anni
------------------------------
CREATE function ufn_PivotSum(@DaAnno int)
RETURNS TABLE AS
RETURN (
SELECT TOP 100 PERCENT
  Sez_Prov,Sez_Com,Gruppo,
  SUM(CASE Anno
        WHEN @DaAnno THEN ConteggioDiTessera_n   ELSE 0
      END) AS Anno0,
  SUM(CASE Anno
        WHEN @DaAnno+1 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno1,
  SUM(CASE Anno
        WHEN @DaAnno+2 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno2,
  SUM(CASE Anno
        WHEN @DaAnno+3 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno3,
  SUM(CASE Anno
        WHEN @DaAnno+4 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno4,
SUM(ConteggioDiTessera_n) AS Totale
FROM ContTess
GROUP BY Sez_Prov,Sez_Com,Gruppo
ORDER BY Sez_Prov,Sez_Com,Gruppo
)
--------------------------------------
Quindi puoi utilizzare il recordset in una sp e metterla in JOIN con altre
tabelle
Select * FROM dbo.ufn_PivotSum(1999) as Pivot
-- Eventule JOIN con altre tabelle
--------------------------------------
Oppure puoi fare il tutto nella stessa sp
Creazione sp pivot con delta di 5 anni
---------------------------------------
CREATE PROCEDURE usp_PivotSum2 (@DaAnno int) AS
SELECT
  Sez_Prov,Sez_Com,Gruppo,
  SUM(CASE Anno
        WHEN @DaAnno THEN ConteggioDiTessera_n   ELSE 0
      END) AS Anno0,
  SUM(CASE Anno
        WHEN @DaAnno+1 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno1,
  SUM(CASE Anno
        WHEN @DaAnno+2 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno2,
  SUM(CASE Anno
        WHEN @DaAnno+3 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno3,
  SUM(CASE Anno
        WHEN @DaAnno+4 THEN ConteggioDiTessera_n ELSE 0
      END) AS Anno4,
SUM(ConteggioDiTessera_n) AS Totale
INTO #Pivot
FROM ContTess
GROUP BY Sez_Prov,Sez_Com,Gruppo
ORDER BY Sez_Prov,Sez_Com,Gruppo
SELECT * FROM #Pivot  -- eventiale JOIN con altre tabelle
------------------------------------------------
Insomma ci possono essere molte strade per risolvere il problema
Ciao Giorgio


title: StoredProcedure a campi incrociati

text:
"Giorgio Prx" <
giorgio...@nospamtiscali.it
> ha scritto nel messaggio
> "Sib" <si...@SPAMiol.it> ha scritto nel messaggio
> > "Giorgio Prx" <
giorgio...@nospamtiscali.it
> ha scritto nel messaggio
> > cut
> > > ----------------------------------
> > > Exec usp_PivotSum
> > >       'ContTess',  -- Tabella
> > >      'Sez_Prov,Sez_Com,Gruppo',      -- Campi intestazione riga
> > >       NULL,      -- Alias intestazione colonna
> > >      'Anno',      -- Intestazione colonna
> > >      'ConteggioDiTessera_n'       -- Valore
> > > ----------------------------
cut
> > Ti ringrazio molto, si avvicina molto a cio che mi serve.
> > Scusa se aggiungo tre domande:
> > Come aggiungi un campo alle intestazioni di riga ?(in realta' mi sono
gia'
> > risposto da solo perche' ho aggiunto qualche riga di codice alla sp per
> > gestire un nuovo parametro @onrow2)
> > Come si puo' utilizzare questa sp in una ulteriore sp?
> > Come affronti in linea di principio questo problema sui tuoi database?
cut
> Vediamo se ho capito
> Se a te interessa avere il resultset della sp come se fosse una tabella o
> una vista in modo da inserirla in altre select possiamo utilizzare le
> tabelle temporanee quindi nei parametri della sp aggiungiamo la tabella di
> output
>
> -----------------
> ALTER  PROCEDURE usp_PivotSum
cut
> SELECT * FROM #Pivot  -- eventiale JOIN con altre tabelle
> ------------------------------------------------
>
> Insomma ci possono essere molte strade per risolvere il problema
Giorgio, ti ringrazio molto per i tuoi validissimi suggerimenti.
Mi studiero' il tuo post con una certa attenzione.
Certamente sono nella situazione di dover cambiare logica (anche per
l'ottimizzazione della strategia client/Server).
Purtroppo la fretta porta sempre a cercare il primo accrocchio che funziona
per poter soddisfare il cliente che ha premura.
Cerchero' di sfruttare i tuoi suggerimenti in due fasi, una immediata per
trovare appunto la prima cosa che funziona, una subito dopo per iniziare
l'ottimizzazione.
Ciao
Sib


title: Blocca e Sblocca

author: Gianfry

text:
Salve, sto provando il codice trovato sul sitocomune...
funziona benissimo ma mi blocca le ricerche... sfogliando il gruppo ho
trovato
questo codice ma non mi funziona...
il codice è:
Public Function bloccaon(mask)
Dim Valore
Dim Ctl As Object
Valore = -1
Forms(mask)!PLS_MODIFICA.Visible = Valore
Forms(mask).AllowEdits = Not (Valore)
' blocca anche ogni sottomaschera
    For Each Ctl In Forms(mask).Controls
'Debug.Print Ctl.Name
If Ctl.ControlType = acSubform Then
Forms(mask).Form(Ctl.Name).Locked = Valore
End If
If Ctl.ControlName = "ricerca1" Or _
Ctl.ControlName = "ricerca2" Or _
Ctl.ControlName = "ricerca5" Then
Ctl.Locked = False
End If
Next Ctl
End Function
----------------------------------------
Purtroppo non capisco perchè la maschera si ostina a non darmi la
possibilità di scegliere il record tramite
la combobox "ricerca1"
Mi potete aiutare?
grazie


title: Blocca e Sblocca

text:

scusate: ma le ricerche nel gruppo a voi vi funzionano? io da almeno
tre giorni non riesco più a fare ricerche...


title: Blocca e Sblocca

author: Geppo

text:
Ciao "Gianfry" <
gian...@gmail.com
> ha scritto nel messaggio
news:7dc0d880-c102-4371...@j32g2000yqh.googlegroups.com...
>Salve, sto provando il codice trovato sul sitocomune...
>funziona benissimo ma mi blocca le ricerche... sfogliando il gruppo ho
>trovato
>questo codice ma non mi funziona...
>il codice �:
>Public Function bloccaon(mask)
>Dim Valore
>Dim Ctl As Object
>Valore = -1
>Forms(mask)!PLS_MODIFICA.Visible = Valore
>Forms(mask).AllowEdits = Not (Valore)
>'blocca anche ogni sottomaschera
>    For Each Ctl In Forms(mask).Controls
>'Debug.Print Ctl.Name
>If Ctl.ControlType = acSubform Then
>Forms(mask).Form(Ctl.Name).Locked = Valore
>End If
>If Ctl.ControlName = "ricerca1" Or _
>Ctl.ControlName = "ricerca2" Or _
>Ctl.ControlName = "ricerca5" Then
>Ctl.Locked = False
>End If
>Next Ctl
>End Function
----------------------------------------
>Purtroppo non capisco perch� la maschera si ostina a non darmi la
>possibilit� di scegliere il record tramite
>la combobox "ricerca1"
>
Mi potete aiutare?
Elimina questa riga di codice che ti blocca la form:
Forms(mask).AllowEdits = Not (Valore)
grazie
--
Ciao
Geppo


title: Blocca e Sblocca

text:
On 26 Lug, 23:55, "Geppo" <c...@tin.it.invalid> wrote:
> Ciao "Gianfry" <
gianfr...@gmail.com
> ha scritto nel messaggionews:7dc0d880-c102-4371...@j32g2000yqh.googlegroups.com...
>
>
>
>
>
> >Salve, sto provando il codice trovato sul sitocomune...
> >funziona benissimo ma mi blocca le ricerche... sfogliando il gruppo ho
> >trovato
> >questo codice ma non mi funziona...
> >il codice è:
> >Public Function bloccaon(mask)
> >Dim Valore
> >Dim Ctl As Object
> >Valore = -1
> >Forms(mask)!PLS_MODIFICA.Visible = Valore
> >Forms(mask).AllowEdits = Not (Valore)
> >'blocca anche ogni sottomaschera
> >    For Each Ctl In Forms(mask).Controls
> >'Debug.Print Ctl.Name
> >If Ctl.ControlType = acSubform Then
> >Forms(mask).Form(Ctl.Name).Locked = Valore
> >End If
> >If Ctl.ControlName = "ricerca1" Or _
> >Ctl.ControlName = "ricerca2" Or _
> >Ctl.ControlName = "ricerca5" Then
> >Ctl.Locked = False
> >End If
> >Next Ctl
> >End Function
>
> ----------------------------------------
>
> >Purtroppo non capisco perchè la maschera si ostina a non darmi la
> >possibilità di scegliere il record tramite
> >la combobox "ricerca1"
>
> Mi potete aiutare?
> Elimina questa riga di codice che ti blocca la form:
>
> Forms(mask).AllowEdits = Not (Valore)
>
> grazie
>
> --
> Ciao
> Geppo- Nascondi testo citato
>
> - Mostra testo citato -
Grazie, finalmente funziona.


title: report di access

author: orchidea

text:
chi mi puo aiutare
ho creato un report con access e mi è riuscito come lo volevo
ma in anteprima di stampa mi fa vedere il primo record sulla prima pagina,
sulla 2 un piccolo residuo del campo titolo
nella 3 pagina il record n2 sulla 4pg è bianca la 5 pg il 3 record e cosi
via fino alla fine.
in pratica mia raddoppiato le pagine meta con i record e meta bianche.
mi potete aiutare
grazie


title: report di access

author: Karl Donaubauer

text:
orchidea wrote:
> ho creato un report con access e mi è riuscito come lo volevo
> ma in anteprima di stampa mi fa vedere il primo record sulla prima
> pagina, sulla 2 un piccolo residuo del campo titolo
> nella 3 pagina il record n2 sulla 4pg è bianca la 5 pg il 3 record
> e cosi via fino alla fine.
> in pratica mia raddoppiato le pagine meta con i record e meta
> bianche.
www.donkarl.com/it?FAQ5.12
--
Ciao
Karl
*********
Access FAQ:
http://www.donkarl.com/it


title: report di access

author: Davide

text:
"Karl Donaubauer" <
NoS...@donkarl.com
> ha scritto nel messaggio
CUT
>
www.donkarl.com/it?FAQ5.12
Uelà DonKarl,
che si dice?
come và?
Ricorda che il mio invito è sempre valido.
Ciao
Davide (Sib)


title: report di access

text:
Davide wrote:
> ...
> Uelà DonKarl,
Ciao Davide,
> che si dice?
> come và?
Così così, come quasi sempre.
> Ricorda che il mio invito è sempre valido.
Il massimo sud dove siamo arrivati quest'anno era Taranto.
Certo mi farò sentire se finalmente arriveremo sull'isola.
--
Saluti da Vienna



title: Report di dati da orizzontale a verticale

text:
Ho una tabella con queste colonne "Utente" , Professionista,
Prestazione, mese,1,2,3,4(fino a 31). Nelle mie intenzioni si vuole
creare una maschera in cui per ogni utente si segnala il mese in cui
un "professionista" è intervenuto, la prestazione offerta e si clicca
sulla casella del giorno in cui è intervenuto (tipo dati "Si/No",).
L'esigenza principale del programma è quello di contare il n° di
giorni in cui è intervenuto il profess.
Spero fin qui di essere stato chiaro... A questo punto  è sorta una
nuova richiesta e dovrei impiantare un Report in cui in ogni pagina ci
sia come titolo l'utente ed il mese (e fin qui nessun problema) e poi
in ogni riga sia indicato il giorno della prestazione (dove ho messo
il click), il Professionista e il tipo di Prestazione.
Avete dei consigli da darmi?!
Stefano


author: Roberto dal portatile

text:
<
slav...@gmail.com
> ha scritto nel messaggio
news:1178284761.2...@y5g2000hsa.googlegroups.com...

Ammesso e non concesso che io abbia ben compreso il tuo problema, devi prima
trasporre i dati della tua tabella da una struttura a colonne ad una in
righe, quindi usi il risultato di tale trasposizione come origine record di
un report.
Per vedere come effettuare la trasposizione dei dati vai sul Sito Comune
(link qui sotto) e nella Sezione Query leggi la mia FAQ intitolata "2.29
Query a campi incrociati per la trasposizione righe-colonne".
>
>Stefano
--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------


text:
> Ammesso e non concesso che io abbia ben compreso il tuo problema, devi prima
> trasporre i dati della tua tabella da una struttura a colonne ad una in
> righe, quindi usi il risultato di tale trasposizione come origine record di
> un report.
> Per vedere come effettuare la trasposizione dei dati vai sul Sito Comune
> (link qui sotto) e nella Sezione Query leggi la mia FAQ intitolata "2.29
> Query a campi incrociati per la trasposizione righe-colonne".
>
>
>
> >Stefano
>
> --
> Roberto
Dai consigli che mi hai dato, questo è quello che sono riuscito a
costruire:
TRANSFORM Sum(Rapporto.MioValore) AS [Il Valore]
SELECT Rapporto.riga
FROM [SELECT FigProf.data, "CodiceFiscale" AS Riga,
FigProf.CodiceFiscale AS MioValore
FROM  FigProf
UNION SELECT FigProf.Data, "1" AS Riga, FigProf.1 AS MioValore FROM
FigProf
UNION SELECT FigProf.Data, "2" AS Riga, FigProf.2 AS MioValore FROM
FigProf
UNION SELECT FigProf.Data, "3" AS Riga, FigProf.3 AS MioValore FROM
FigProf
UNION SELECT FigProf.Data, "4" AS Riga, FigProf.4 AS MioValore FROM
FigProf
UNION SELECT FigProf.Data, "5" AS Riga, FigProf.5 AS MioValore FROM
FigProf
.
.
.
UNION SELECT FigProf.Data, "31" AS Riga, FigProf.31 AS MioValore FROM
FigProf;]. AS Rapporto
GROUP BY Rapporto.Riga
PIVOT FigureProfessionali;
Però la query non parte perchè secondo lui l'uso di ".", "!" o ")" è
errato. A me sembra identico all'esempio, dove sbaglio?
Altro dubbio: come valore vorrei non il valore di
"FigureProfessionali" (la mia colonna) o di "1" ecc... (la mia riga)
ma una terza colonna che ho chiamato "Prestazioni". Come faccio, è da
mettere al posto di "FigProf.1 AS MioValore" come
"FigProf.Prestazioni" ecc..
Grazie ancora per l'aiuto.
P.S.
Mi scuso in anticipo per le spiegazioni forse poco chiare.


text:
Sto arrivando piano piano alla soluzione ma avrei bisogno ancora di un
vostro aiuto.
Ecco la Query costruita fino ad adesso:
TRANSFORM Min(Prestazioni.Prestazione) AS MinDiPrestazione
SELECT Rapporto.CodiceFiscale, Rapporto.Riga AS Espr1
FROM [SELECT FigProf.FigureProfessionali, CodiceFiscale, "1" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "2" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "3" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "4" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "5" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "6" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "7" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf
UNION SELECT FigProf.FigureProfessionali, CodiceFiscale, "8" AS Riga,
FigProf.Prestazioni AS MioValore FROM FigProf;]. AS Rapporto INNER
JOIN Prestazioni ON Rapporto.MioValore = Prestazioni.IdPrest
GROUP BY Rapporto.CodiceFiscale, Rapporto.Riga
ORDER BY Rapporto.Riga
PIVOT Rapporto.FigureProfessionali;
Così ottengo una tabella doveper riga ho i giorni del mese ed il
codice fiascale, per colonna la figura professionale e per valore la
prestazione (come testo e non per numero come era prima).
Quello che mi manca a questo punto è il "filtro" dei codici fiscali.
Adesso per il giorno "1" ho tante righe quanti sono i codFisc inseriti
anche se per quel giorno non tutti hanno ottenuto prestazioni.
Come posso raffinare il dato.
Grazie ancora per l'aiuto.
Stefano


title: Impossibile avviare Microsoft Access

author: Angelo

text:
Salve ragazzi.,
"Impossibile avviare Microsoft
Access. Non e` stata concessa la licenza d'uso su questo computer"
Questo è il messaggio che mi appare quando avvio access.
Il problema è che esiste un programmino che risolve tale inconveniente e
funziona bene su win98
ma io ho access97 su XP e tale utility funge.
Come fare a risolvere il problema ?
Grazie a tutti, ciao, Angelo


title: Impossibile avviare Microsoft Access

author: Roberto da casa

text:
"Angelo" <
ang...@freemail.it
> ha scritto nel messaggio
news:S9cv9.88309$%M1.22...@twister2.libero.it...

Per Windows 2000 la soluzione valida era quella che trovi a questo link:
http://support.microsoft.com/support/kb/articles/q241/1/41.asp
Con mooooltissima probabilità va bene anche per Windows XP, visto che
bisogna agire sul nome di un font.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Oggetto: Aiuto Baraldi:Listbox Baraldi Muovere Items

text:
Salve, ho utilizzato il tuo esempio del 13/09/2006 presente sul tuo
sito
www.alessandrobaraldi.it
,
purtroppo non sono in grado di (premetto che ho popolato lst1 con n.
4
colonne e fin qui funziona):
1- come faccio a spostare (pulsante cmdMoveTo) da lst1 a lst2 i valori
delle
quattro colonne? e se ne avessi 5 o 6?
2-idem per il pulsante cmdMoveFrom, ripristina da lst2 a lst1?
3- pulsante cmdMoveAllTo?
Il fine è quello di avere su lst2 i valori di quattro o più colonne
provenienti da lst1 e poi poterli accodare in una tabella.
Ti ringrazio


author: Alessandro Baraldi

text:

Prima di tutto un'appunto, anzi 4:
1) I Subject con riferimenti personali sono scorretti per il NG
2) Hai usato 2 NG per postare il problema senza segnalarlo
3) I subject con riferimenti(almeno per quanto mi riguarda) mi
inducono a non rispondere.
4) Hai usato anche la mail privata dal mio sito, nel quale è BEN
EVIDENTE il divieto all'uso per fini di consulenza privata.
Il punto 1 e 2 sono un rispetto del Regolamento del NG e non ti posso
imporre nulla, ma i punti 3 e 4 sono personali ed è mia volontà siano
sempre rispettati.
Ora detto questo passo a risponderti con la sicurezza che quanto
esposto sia recepito.
Le routine che trovi all'interno non tengono conto di un MultiColumn,
ma la modifica da fare è banale.
In tutti i posti in cui trovi riferimenti espliciti alla
Column(0,RowIndex) dovrai sostiutiuirlo con  un ciclo For...Next  da
ZERO alla proprietà ColumnCount-1
ed anche dove vedrai il riferimento al valore della List che di
Default prende la BoundColumn dovrai inserire lo stesso Ciclo....!
Fai attenzione a tutte le routines, il codice da usare è semplice ma
probabilmente va inserito in molti punti, a questo proposito ti
suggerisco di creare una Function nella Form che restituisce la
Stringa separata dal ; per le varie Column in modo da richiamarla N
volte e non doverla riscrivere continuamente.
@Alex


title: funzione "apri maschera se"

author: Giorgia

text:
Buongiorno!
in una casella combinata di una maschera vorrei che, per un determinato
valore, si aprisse un'altra maschera.
Per la funzione se non in elenco è più semplice perchè la voce è già
presente nelle proprietà del campo ma per porre la condizione (scusate se la
dico in italiano) SE SCELGO VALORE [X] APRI MASCHERA [C] non so come fare.
Grazie in anticipo a chi risponderà
--
Giorgia


title: funzione "apri maschera se"

author: Marco Pizzamiglio

text:
Giorgia ha scritto:

Nell'evento Dopo aggiornamento (After_update) della casella combinata più
o meno traduci in inglese quello che hai già scritto:
  if nz(me.nomecasella,0)=valore then docmd.openform "nome maschera"
Ovviamente sostituisci i nomi di casella, valore e maschera con quelli che
usi tu.
Ciao.
-Marco-
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


title: funzione "apri maschera se"

text:
"Marco Pizzamiglio" <
marco.pi...@gmail.com
> ha scritto nel messaggio
news:focq13$1fh$1...@news.newsland.it...

Ciao Marco,
mi sembrava semplice chiara e logica e invece non riesco a farla funzionare.
Forse devo essere più precisa ed indicare i valori che mi hai avvisato di
sostituire tra [] o virgolette?
--
Giorgia


title: funzione "apri maschera se"

text:
Giorgia ha scritto:
> >> Buongiorno!
> >> in una casella combinata di una maschera vorrei che, per un determinato
> >> valore, si aprisse un'altra maschera.
> >> Per la funzione se non in elenco è più semplice perchè la voce è già
> >> presente nelle proprietà del campo ma per porre la condizione (scusate se
> >> la
> >> dico in italiano) SE SCELGO VALORE [X] APRI MASCHERA [C] non so come
> >> fare.
> >> Grazie in anticipo a chi risponderà
> >
> >
> > Nell'evento Dopo aggiornamento (After_update) della casella combinata più
> > o meno traduci in inglese quello che hai già scritto:
> >  if nz(me.nomecasella,0)=valore then docmd.openform "nome maschera"
> > Ovviamente sostituisci i nomi di casella, valore e maschera con quelli che
> > usi tu.
> > Ciao.
> > -Marco-
> Ciao Marco,
> mi sembrava semplice chiara e logica e invece non riesco a farla funzionare.
> Forse devo essere più precisa ed indicare i valori che mi hai avvisato di
> sostituire tra [] o virgolette?
Se incollavi la riga che ti dà errore e dicevi quale errore dà ti potevo
dare un suggerimento, così mi è difficile...
Per la sintassi esatta dovrei sapere come si chiama la casella combinata,
la maschera e se il valore da confrontare è una variabile o un valore
fisso, se è fisso anche di che tipo è (numerico, testo, data, ...)



title: Routine Dopo Aggiornamento

text:
Ho questa routine  sotto , che non mi da risultati perchè
un controllo nella form "SiglaProvincia" rimane vuoto

Dovrei far funzionare questa routine anche se il controllo "SiglaProvincia"
rimane vuoto

Come posso fare ?

If IsNull(Me.Nazione) Or IsNull(Me.PesoLordo) Then
        Me.CostoSpedizione = Null
   Else

             If Me.Nazione = "Austria" Or Me.Nazione = "Belgio" Or Me.Nazione = "Germania" _
             Or Me.Nazione = "Olanda" Or Me.Nazione = "Paesi Bassi" Or Me.Nazione = "Lussemburgo" Then

  Select Case PesoLordo

          Case Is <= 3 'Valore compreso tra 0÷3000
               Me.CostoSpedizione = 7
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

           Case Is <= 5 'Valore compreso tra 3÷5000
               Me.CostoSpedizione = 8
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

           Case Is <= 10 'Valore compreso tra 5÷10000
               Me.CostoSpedizione = 9
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

         Case Is <= 15 'Valore compreso tra 10÷15000
               Me.CostoSpedizione = 11
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

          Case Is <= 20 'Valore compreso tra 15÷20000
               Me.CostoSpedizione = 13
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

         Case Is <= 30 'Valore compreso tra 20÷30000
               Me.CostoSpedizione = 15
                  Me.TSP = "CO"
                      Me.Corriere = "GLS Europa 1"
                         Me.TipoSpedizione = "GLS Standard Europa 1"
                             Me.ZonaSpedizione = "Unione Europea"
                                 Me.TipoOrdine = "Ebay"
                                       Me.TipoPagamento = "Ebay"

                                      End Select
            			End If
               		                		End If

Grazie  Giuseppe


title: Routine Dopo Aggiornamento

author: BFS

text:

non vedo "siglaprovincia" in questo codice...quindi dovrebbe essere
irrilevante

a meno che non sia ancor assonnato

BFS


title: Routine Dopo Aggiornamento

text:

Buongiorno ,

"Siglaprovincia" è un controllo che viene popolato automaticamente .
mi spiego meglio , importo un file da Ebay  con tutti i dati delle spedizioni effettuate
importando i dati spedizione dei clienti Italia automaticamente il dato SiglaProvincia viene inserito
il problema è quando importa i dati dei clienti estero che non usano o non inseriscono la Provincia e il campo rimane vuoto
anche per i clienti estero se hanno la provincia allora la routine funziona  e mi inserisce in automatico
questi dati :

Io inserisco il peso sul controllo "PesoLordo" e automaticamente mi inserisce  i valori sotto

Case Is <= 3 'Valore compreso tra 0÷3000
Me.CostoSpedizione = 7
                    Me.TSP = "CO"
                        Me.Corriere = "GLS Europa 1"
                          Me.TipoSpedizione = "GLS Standard Europa 1"
                               Me.ZonaSpedizione = "Unione Europea"
                                  Me.TipoOrdine = "Ebay"
                                         Me.TipoPagamento = "Ebay"

se dopo aggiornamento non trova un valore sul controllo SiglaProvincia  questo sopra non funziona
quello che vorrei è che  la routine mi funzionasse anche se il valore "SiglaProvincia" è vuoto

Giuseppe


title: Routine Dopo Aggiornamento

text:

vado ad intuito perchè continuo a non capire dove è la provincia in
questo codice e quindi perchè il codice fallisca in caso di sua mancanza

forse questo codice l'hai messo nel after update della SiglaProvincia ?

se si potresti crearti una funzione

calcolaSpese()
con tutto quel codice dentro

nel after update del campo nazione potresti mettere:

if Me.Nazione<>"ITALIA" then
	'devo richiamare la funzione
	call calcolaSpese

end if

nel after update del campo siglaprovincia  mettere:

call calcolaSpese

e quindi in ogni caso il codice verrebbe eseguito

se non è cosi non ho capito nulla di quello che devi fare

ciao
BFS


title: Routine Dopo Aggiornamento

text:

Sigla Provincia non ha nessuna routine da eseguire , è una casella combinata
No  il codice che ho inviato è su after update del controllo PesoLordo

>
> se si potresti crearti una funzione
>
> calcolaSpese()
> con tutto quel codice dentro
>
>
> nel after update del campo nazione potresti mettere:
>
> if Me.Nazione<>"ITALIA" then
> 'devo richiamare la funzione
> call calcolaSpese
>
> end if
>
>
> nel after update del campo siglaprovincia mettere:
>
> call calcolaSpese
>
>
> e quindi in ogni caso il codice verrebbe eseguito
>
> se non è cosi non ho capito nulla di quello che devi fare
>
> ciao
> BFS

Può essere perchè sullo stesso controllo PesoLordo  ho all'inizio questa istruzione sotto ?

dal after update del controllo PesoLordo  vengono popolati i vari controlli , alcuni in base alla Nazione ( no Italia )
invece Italia in base alla Provincia

Private Sub PesoLordo_AfterUpdate()

' Spedizioni  per  ITALIA  *************** ITALIA ***************  GLS / BRT

    If IsNull(Me.SiglaProvincia) Or IsNull(Me.PesoLordo) Then
        Me.CostoSpedizione = Null
    Else

           If Me.SiglaProvincia = "AQ" Or Me.SiglaProvincia = "TE" Or Me.SiglaProvincia    ecc.ecc.      Then

              Select Case PesoLordo
                Case Is <= 4
                    Me.CostoSpedizione = 6.5
                     Me.TSP = "SCT"
                      Me.Corriere = "GLS Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"

                Case Is <= 5
                    Me.CostoSpedizione = 7.5
                      Me.TSP = "SCT"
                       Me.Corriere = "GLS Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
                Case Is <= 15
                    Me.CostoSpedizione = 9.9
                     Me.TSP = "SCT"
                      Me.Corriere = "GLS Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
                Case Is <= 24
                Me.CostoSpedizione = 11.5
                 Me.TSP = "SCT"
                      Me.Corriere = "GLS Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
            End Select

        Else
                   If Me.SiglaProvincia = "CT" Or Me.SiglaProvincia = "RG" Or Me.SiglaProvincia = "ME" Or Me.SiglaProvincia = "AG" Or Me.SiglaProvincia = "SR" _
                   Or Me.SiglaProvincia = "CA" Or Me.SiglaProvincia = "CI" Or Me.SiglaProvincia = "VS" Or Me.SiglaProvincia = "NU" _
                   Or Me.SiglaProvincia = "OG" Or Me.SiglaProvincia = "SS" Or Me.SiglaProvincia = "OT" Or Me.SiglaProvincia = "OR" _
                   Or Me.SiglaProvincia = "KR" Or Me.SiglaProvincia = "RC" Or Me.SiglaProvincia = "CZ" Or Me.SiglaProvincia = "CS" _
                   Or Me.SiglaProvincia = "VV" Or Me.SiglaProvincia = "PA" Or Me.SiglaProvincia = "VE" Then

                   Select Case PesoLordo
                Case Is <= 4
                    Me.CostoSpedizione = 6.5
                     Me.TSP = "SCT"
                      Me.Corriere = "BRT - Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"

                Case Is <= 5
                    Me.CostoSpedizione = 6.95
                      Me.TSP = "SCT"
                       Me.Corriere = "BRT - Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
                Case Is <= 15
                    Me.CostoSpedizione = 9.9
                     Me.TSP = "SCT"
                      Me.Corriere = "BRT - Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
                Case Is <= 24
                Me.CostoSpedizione = 13.2
                 Me.TSP = "SCT"
                      Me.Corriere = "BRT - Italia"
                         Me.TipoSpedizione = "STANDARD Italia"
                            Me.ZonaSpedizione = "ITALIA"
                                Me.TipoPagamento = "Ebay"
End Select

Ciao Giuseppe


title: Routine Dopo Aggiornamento

text:

ok ora è chiaro

farei un if then per dividere i due casi

if isnull(me.siglaprovincia) then

	conteggi per estero

else

	conteggi per italia
endif


title: Routine Dopo Aggiornamento

text:

OK sistemato tutto

Grazie
Giuseppe


title: Nome campo variabile query

text:
Salve.
Ho un problema di punteggiatura in una query.
Listino1 è un campo.
"[Listino & "1]" ovviamente non lo è.
Il problema è come far digerire il concatenamento come nome di campo perchè devo gestire diversi listini.
Grazie mille.


title: Nome campo variabile query

text:

"[Listino" & ValoreNumerico & "]"

@Alex


title: Usare lo stesso mde da due pc in rete contemporaneamente?

author: Mercurio

text:
Come da oggetto, volevo sapere se era possibile utilizzare un Database che
ho creato, e che in poche parole gestisce la fatturazione, in contemporanea
da due pc diversi collegati inr ete.
In poche parole vorrei la possibilità di generare fatture da 2 pc nello
stesso momento.
Se è possibile, come devo muovermi?
Basta aprire il database dall'altro PC o devo usare delle impostazioni
particolari?
Grazie a tutti per le risposte :-)


author: Matteo Fortini

text:
Non ci sono problemi, se non hai fatto delle cose strane, tipo modificare le
maschere o le query da codice (nel qual caso un utente comincerebbe a pestare
i piedi all'altro).
Ovviamente ci sono i problemi di condivisione quando gli utenti fanno degli
aggiornamenti alle tabelle contemporaneamente, ma:
1) mi sembra che il tuo problema sia stampare, quindi leggere, e lì non ci
sono conflitti
2) puoi impostare il blocco record nelle maschere a rischio a "record
modificati" perché Access "gestisca" i problemi.
HTH,
    Matteo


text:
Matteo Fortin ha scritto
> Ovviamente ci sono i problemi di condivisione quando gli utenti fanno
degli
> aggiornamenti alle tabelle contemporaneamente, ma:
E' proprio quello il problema.
Correi sapere se i due utenti possono inserire dennle nuove fatture in
contemporanea.
In pratica i due pc si trovano uno nell'ufficio del titolare e l'altro in
ufficio
accettazioni.
Il numero maggiore di fatture dovrebbe essere emesso dall'ufficio
accettazioni, ma se un cliente parla direttamente con il titolare,
quest'ultimo
vorrebbe acere la possibilità di emettere sul moemnto una fattura, seza
dover rimandare il cliente in ufficio accettazioni:
in poche parole è un comodone :-)
> 1) mi sembra che il tuo problema sia stampare, quindi leggere, e lì non ci
> sono conflitti
> 2) puoi impostare il blocco record nelle maschere a rischio a "record
> modificati" perché Access "gestisca" i problemi.
>
> HTH,
>     Matteo
>
puoid armi chiarimenti sul problema? Pnsi che si potrebbero creare conflitti
"di interesse" ? :-)


author: Sib dal portatile

text:
"Mercurio" <
nau...@wappi.com
> ha scritto nel messaggio
news:9d991r$n4m$1...@nreadA.inwind.it...

Se la gestione delle fatture e' ben fatta, basta aprirlo dai pc dove si
lavora.
Ma mi pare di capire che hai lasciato tutto insieme (tabelle con tutto il
resto), se i pc sono due potrebbe anche andare, ma se appena diventano tre
ti conviene dividere i dati (tabelle) dal resto (maschere e quant'altro). Te
lo fa anche il wizard predefinito.
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente


text:
Sib dal portatile ha scritto nel messaggio
> Se la gestione delle fatture e' ben fatta, basta aprirlo dai pc dove si
> lavora.
Non so se la gestione è ben fatta... non sono capace di autogiudicare
i miei "manicaretti" :-) ma credo che lo sia, anche perchè funziona come
un orologio e non mi da problemi (Almeno per ora).
> Ma mi pare di capire che hai lasciato tutto insieme (tabelle con tutto il
> resto)
e se è questo che intendevi con "ben fatto", allora si :-) ... è un'unico
blocco compattato da quasi 9 Mb (Prima di usare il tool di compressione
di Access 2000 era di 52Mb.. chissà che fine hanno fatto gli altri 43
Mb :-?). Qomunque non mi da problemi ed è molto veloce nel
caricamento delle maschere e dei dati sul celeron 500 con 64Mb
dell'ufficio.)
>, se i pc sono due potrebbe anche andare
Sono e resteranno in eterno 2
>, ma se appena diventano tre
esplode???  ]:-P
> ti conviene dividere i dati (tabelle) dal resto (maschere e quant'altro).
E cosa ci guadagno? Velocità? Stabilità? Scusa la mia ignoranza.... ma
uso Access SQL e VBA da troppo poco tempo per esser sufficientemente
smaliziato da conoscerne tutti i trucchetti (Spero vogliate aiutarmi in
questo
senso)
>Te lo fa anche il wizard predefinito.
E qual'è questo Wizard?
E in poche parole cosa fa?
Ciao Sib :-)
Rispondimi presto (se puoi), sono affamato di conoscenza e non riesco a
trovare nessuno che possa istruirmi (Oltre ai libri e all'help in linea)


text:
"Mercurio" <
nau...@wappi.com
> ha scritto nel messaggio
> Sib dal portatile ha scritto nel messaggio
> > Se la gestione delle fatture e' ben fatta, basta aprirlo dai pc dove si
> > lavora.
>
> Non so se la gestione è ben fatta... non sono capace di autogiudicare
> i miei "manicaretti" :-) ma credo che lo sia, anche perchè funziona come
> un orologio e non mi da problemi (Almeno per ora).
>
> > Ma mi pare di capire che hai lasciato tutto insieme (tabelle con tutto
il
> > resto)
>
> e se è questo che intendevi con "ben fatto", allora si :-) ... è un'unico
> blocco compattato da quasi 9 Mb (Prima di usare il tool di compressione
> di Access 2000 era di 52Mb.. chissà che fine hanno fatto gli altri 43
> Mb :-?).
I file mdb tendono a crescere di dimensioni man mano che ci si lavora,
quando elimini un oggetto access non lo elimina subito, ma lo marca come
cancellato. Quando esegui la compattazione tutti gli oggetti marcati come
cancellati vengono effettivamente eliminati.
Purtroppo questo non vuol dire che una eliminazione possa essere annullata,
forse avevano questa intenzione quando hanno scelto questa strategia ma
magari gli dava problemi e non l'hanno mai attivata (questa e' una mia
elucubrazione;-)
> Qomunque non mi da problemi ed è molto veloce nel
> caricamento delle maschere e dei dati sul celeron 500 con 64Mb
> dell'ufficio.)
>
> >, se i pc sono due potrebbe anche andare
>
> Sono e resteranno in eterno 2
>
> >, ma se appena diventano tre
>
> esplode???  ]:-P
>
> > ti conviene dividere i dati (tabelle) dal resto (maschere e
quant'altro).
>
> E cosa ci guadagno? Velocità? Stabilità? Scusa la mia ignoranza.... ma
> uso Access SQL e VBA da troppo poco tempo per esser sufficientemente
> smaliziato da conoscerne tutti i trucchetti (Spero vogliate aiutarmi in
> questo
> senso)
Guadagneresti in solidita' e velocita', ma non conviene per due soli utenti,
soprattutto se non lavorano frequentemente in contemporanea.
> >Te lo fa anche il wizard predefinito.
>
> E qual'è questo Wizard?
In A97 vai in strumenti/aggiunte/divisione database
In A2000 deve essere da quelle parti.
> E in poche parole cosa fa?
Crea due file mdb, uno con le tabelle e uno con tutto il resto.
Tu distribuisci agli utenti quello con "tutto il resto" e li colleghi al
file mdb con le tabelle (che deve rimanere unico).
Ciao



title: obj.copyfile mi da autorizzazione negata(error 70)

author: david

text:
se scrivo:
Function FolderVBA()
Dim objFSO
Dim a As String
Dim b As String
Set objFSO = CreateObject("Scripting.FileSystemObject")
a = "C:\davide\readme.txt"
b = "C:\davide1"
objFSO.CopyFile a, b
End Function
ottengo un bel "errore 70" autorizzazione negata!!!
se scrivo  il file sorgente più l'asterisco
Function FolderVBA()
Dim objFSO
Dim a As String
Dim b As String
Set objFSO = CreateObject("Scripting.FileSystemObject")
a = "C:\davide\readme.txt*"  'LA DIFFERENZA CON IL CODICE PRECEDENTE
			       'è nell'asterisco aggiunto QUI
			       'readme.txt* invece di readme.txt
b = "C:\davide1"
objFSO.CopyFile a, b
End Function
non mi da errore.
PECCCCCHE'''??????????'
ciao a tutti
david


author: Federico Luciani

text:
david wrote:
> se scrivo:
> Function FolderVBA()
> Dim objFSO
> Dim a As String
> Dim b As String
> Set objFSO = CreateObject("Scripting.FileSystemObject")
> a = "C:\davide\readme.txt"
> b = "C:\davide1"
> objFSO.CopyFile a, b
> End Function
> ottengo un bel "errore 70" autorizzazione negata!!!
prova ad aggiungere lo back-slash al path di destinazione:
b = "C:\davide1\"
--
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------


text:


mi vergogno di me stesso per non aver provato prima.
FUNZIONA
ma allora perchè quell'asterisco mi cambia le cose?????
boooo
cmq thanks
david


title: query complessa o tabella di appoggio

author: marcello

text:
Allora,
elaboro una query abbastanza complessa che mi fornisce delle informazioni
relative ad un mese dell'anno.
sono parecchi record ed alcuni campi contengono formule complesse.
c'è una maschera che mi visualizza la query in questione e che mi fa partire
a richiesta vari grafici filtrando i dati della query.
ogni volta che parte il grafico mi rielabora internamente la query e ci
mette troppo tempo.
ho evitato ciò facendo accodare su una tabella i dati della query e basando
i grafici sulla tabella.
tutto ok è veloce, ogni volta che cambio il mese di riferimento cancello i
dati nella tabella e rielaboro la query per l'accodamento.
forse si può fare lo stesso senza tabella dichiarando una snapshot....
non so bene se questa è la strada giusta
grazie per l'aiuto


title: query complessa o tabella di appoggio

author: mark

text:
"marcello" <
m...@libero.it
> wrote in message
news:shKg8.65960$fa5.2...@twister2.libero.it...

No non è possibile.
Una snapshot è un'istantanea di una tabella o di una query e non può essere
modificata.
La soluzione che hai adottato è la migliore.
Saluti
Marco Dell'Oca
D.M.Software


title: Errore durante l'accesso al file!

author: Donato

text:
Ma che diavolo è successo!?!
Stavo lavorando da almeno 4 ore ad un db su Access E AVEVO PRATICAMENTE
FINITO! quando all'improvviso mi appre un messaggio di Microsoft Viual
Basic: "Errore durante l'accesso al file. Potrebbe non essere più attiva la
connessione di rete"
Cosaaaa!?!?!  La connessione di rete, ma se sto lavorando in locale!?!
Penso che purtroppo il file si sia in qualche modo scassato :-(...in
particolare il file mi si apre e posso entrare in qualsiasi maschera o
tabella o report; il problema sorge quando si deve attivare del codice (per
esempio all'apertura di una maschera) e allora mi appare il msg di cui
sopra.
Penso che in qualche modo il Visual Basic si sia "scollegato" dal resto del
file... non riesco a capire non mi è mai capitato...
Qualcuno sa dirmi che cavolo è successo?
Vi prego aiutatemi, non è che devo ricominciare tutto da capo!?!?
Donato
ark...@tin.it


title: Errore durante l'accesso al file!

author: MegaMax

text:
"Donato" <
ark...@tin.it
> ha scritto nel messaggio
news:T0zt8.11245$vF6.3...@news2.tin.it...
> Ma che diavolo č successo!?!
direi che ti conviene prima di tutto fare qualche copia del DB
poi sulle copie puopi fare diverse prove:
*puoi provare a compattare il DB
*puoi provare a decompattarlo e ricompattarlo
*puoi cercare in internet delle utility per aggiustare dei DB "rotti"
max


title: Errore durante l'accesso al file!

text:
Ciao MegaMax
"MegaMax" <
fe...@polaris.it
> ha scritto nel messaggio
news:a96f5p$sio$1...@newsreader.mailgate.org...
>
> "Donato" <
ark...@tin.it
> ha scritto nel messaggio
> news:T0zt8.11245$vF6.3...@news2.tin.it...
> > Ma che diavolo è successo!?!
>
> direi che ti conviene prima di tutto fare qualche copia del DB
> poi sulle copie puopi fare diverse prove:
> *puoi provare a compattare il DB
> *puoi provare a decompattarlo e ricompattarlo
già fatto, non serve a niente :-( a proposito la versione di Access è la
2000.)
> *puoi cercare in internet delle utility per aggiustare dei DB "rotti"
tipo?
Ciao Donato
ark...@tin.it


title: Errore durante l'accesso al file!

author: Alfiero Ricci

text:
"Donato" <
Hai provato ad avviarlo con un /Decompile?
Ciao: Alfio


title: Errore durante l'accesso al file!

author: Karl Donaubauer

text:
"Donato" <
ark...@tin.it
> ha scritto:
> Stavo lavorando da almeno 4 ore ad un db su Access E AVEVO PRATICAMENTE
> FINITO! quando all'improvviso mi appre un messaggio di Microsoft Viual
> Basic: "Errore durante l'accesso al file. Potrebbe non essere piů attiva la
> connessione di rete"
>
> Cosaaaa!?!?!  La connessione di rete, ma se sto lavorando in locale!?!
> ...
> Qualcuno sa dirmi che cavolo č successo?
> Vi prego aiutatemi, non č che devo ricominciare tutto da capo!?!?
Come gia ho scritto due volte qui:
Nel momento la causa la piů frequente per A00 č descritto a
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q304548
Allora guarda se hai la versione 6.3.91.8 del Vbe6.dll sul sistema.
--
HTH
Karl
*********
Access-FAQ (tedesco):
http://www.donkarl.com


title: Errore durante l'accesso al file!

text:
Grazie tantissime Karl!
Finalmente ho capito il perchč dell'errore...
Ho risolto prendendo una copia di backup e incollandogli sopra un oggetto
alla volta (forms, reports e moduli) compilando ogni volta, per fortuna č
andata...
Ma il file che ho, adesso si puň considerare sicuro? Oppure potrebbe darmi
ancora delle noie?
Ciao Donato
ark...@tin.it
"Karl Donaubauer" <
ad...@donkarl.com
> ha scritto nel messaggio
news:a96j60$o7io$1...@ID-46617.news.dfncis.de...



title: Errore durante l'accesso al file!

text:
Donato" <
ark...@tin.it
> ha scritto:
> "Karl Donaubauer ha scritto:
> > Nel momento la causa la più frequente per A00 è descritto a
> >
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q304548
> > Allora guarda se hai la versione 6.3.91.8 del Vbe6.dll sul sistema.
>
> Finalmente ho capito il perchè dell'errore...
>
> Ho risolto prendendo una copia di backup e incollandogli sopra un oggetto
> alla volta (forms, reports e moduli) compilando ogni volta, per fortuna è
> andata...
>
> Ma il file che ho, adesso si può considerare sicuro? Oppure potrebbe darmi
> ancora delle noie?
Finché hai la versione 6.3.91.8 del Vbe6.dll sul sistema dopo
un importo debbi sempre compilare prima di chiudere.
Questo è descritto nel KB e sembra di essere tutto l'errore.
Oltre a sempre compilare a mano (che puo essere una grande
noia) ci sono 2 rimedie:
1. Microsoft ha un "Hotfix" un po' non ufficiale. Vuol dire che non ce
un sito ufficiale con un download ma si debbe chiamare il MS support
o inviare un mail, raccontare il problema, menzionare l'articolo del
KB ecc. Poi rivelarono un codice per un sito con un download.
Dura solo qualche minuto in Germania. Simile negli Stati Uniti.
Non so se hanno la stessa procedura in Italia. Ma puoi provare.
2. Puoi sostituire il dll con una vecchia versione p.e. da un CD
di Office 2000. Finora due persone mi hanno riportato che non
hanno avuto problemi con questa procedura. Ma certo non è
complettamente siccuro che tutti i programmi che ti hanno
portato la versione 6.3.91.8 (Office XP o Visio 2002)
funzionano tutto bene con la vecchia versione.
Allora sempre compilare o ricevere il Hotfix è più siccuro.



title: Aiuto su filtro

author: Gattopardo

text:
Ho una database costituito da una sola tabella.
Mi serve visualizzare, tramite un foiltro ad hoc, tutti i record che hanno i
campi "codice" e "file audio" non rispondenti alla seguente relazione:
"file audio" = "codice" & ".wav"
Qualcuno mi può suggerire il codice da usare? (mastico un po di VB ma access
non è il mio tipo :-( )
Grazie 1000, spero di essere stato chiaro.


title: Aiuto su filtro

author: Lbo

text:
>Mi serve visualizzare, tramite un foiltro ad hoc, tutti i record che hanno i
>campi "codice" e "file audio" non rispondenti alla seguente relazione:
>
>"file audio" = "codice" & ".wav"
no, un momento, lascia stare le relazioni, dillo a parole tue.  cos'è
che vuoi fare?
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com


title: Aiuto su filtro

text:
I miei record hanno di solito il campo "file audio" uguale al campo "codice"
+ desinenza ".wav"
Esempio: il record con codice = 123456 ha file audio = 123456.wav
Io devo cercare tutti i record che non obbediscono a questa regola e
modificarli.
Insomma se ho un record così:
codice = 222333 e file audio = 444555.wav
devo modificare il campo file audio in modo che il record sia:
codice = 222333 e file audio = 222333.wav
Vorrei inoltre tenere traccia (solo se possibile) dei record che sono stati
modificati in questo modo.
Grazie 1000
"Lbo" <
L...@NOSPAM.blunet.it
> ha scritto nel messaggio
news:3a7f9b96...@news.edisons.it...



title: Aiuto su filtro

author: Nicola Ardito

text:
"Gattopardo" <
bu...@nonspammarmi.freemail.it
> ha scritto nel messaggio
news:95oe8o$7qf$1...@pegasus.tiscalinet.it...
> I miei record hanno di solito il campo "file audio" uguale al campo
"codice"
> + desinenza ".wav"
> Esempio: il record con codice = 123456 ha file audio = 123456.wav
>
> Io devo cercare tutti i record che non obbediscono a questa regola e
> modificarli.
> Insomma se ho un record così:
> codice = 222333 e file audio = 444555.wav
> devo modificare il campo file audio in modo che il record sia:
> codice = 222333 e file audio = 222333.wav
> Vorrei inoltre tenere traccia (solo se possibile) dei record che sono
stati
> modificati in questo modo.
>
> Grazie 1000
In ACC97
costruisci una query di questo tipo (non l'ho controllata)
INSERT INTO tabelladiff SELECT codice,fileaudio FROM TABELLA1 WHERE
codice <> MID(fileaudio,1,instr(1;fileaudio;".")-1)
Una volta costruita la tabella e controllato il suo contenuto costruisci
un'altra query
Update tabella1 set fileaudio = Codice & ".wav" WHERE
codice <> MID(fileaudio,1,instr(1;fileaudio;".")-1)
Ciao Nicola
--
email:sostituire inwind a NOSPAM


title: REPORT E PAGINE!!!

author: Flavio Grazioli

text:
Ho necessita di stampare diverse fatture e verificarle in anteprima di
stampa relative a diversi clienti e fin qui tutto OK ma non riesco a fare
visualizzare il numero di pagina di pagine per ogni cliente.
Es. [pagina 1 di 3 nome cliente]      [pagina 1 di 5 nome cliente ] e cosě
via per gli altri richiamati nel report. L'impostazione tramite un rutine su
formattazione  pag =1 per ogni nuovo cliente  funziona perň  se sul pie
report metto un controllo non associato =[pag di pages] le
pagine complessive del cliente non riesco a impostarle in quanto lui mi
conteggia le pagine complessive di tutti i clienti e non di ogni singolo.
Grazie per eventuali risposte
>


title: REPORT E PAGINE!!!

author: Silvio Berruti

text:
"Flavio Grazioli" <
tecn...@libero.it
> ha scritto nel messaggio
news:tzqq7.8388$Lp6.3...@news.infostrada.it...

Provo a capovolgerti il problema:
al posto di generare un'unica stampa con tutte le fatture da stampare di
tutti i clienti interessati, potresti generare varie stampe, una x cliente,
ciclando sui clienti.
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com


title: Specifiche d'importazione

author: Luca Manetti

text:
Salve a tutti.
Ho un problema con le specifiche d'importazione.
Ho creato il file "schema.ini" contenente le specifiche d'importazione per
un file e l'ho messo nella stessa directory del file *.txt da importare.
Il percorso completo del file  lo assegno alla variaile "PathStr"
Contenuto file schema.ini:
****************************************************
[ImportaPolizze]
ColNameHeader = True
CharacterSet = ANSI
Format = TabDelimited
Col1=Genere Char Width 3
Col2=NoCliente Char Width 9
Col3=NoRiferimento1 Char Width 11
Col4=NoRiferimento2 Char Width 16
Col5=Importo Integer 10
Col6=RifEmissione Char Width 10
Col7=DataEmissione Char Width 6
Col8=DataElaborazione Char Width 6
Col9=DataAccreditamento Char Width 6
Col10=NoMicrofilm Integer 9
Col11=CodiceRigetto Integer 1
Col12=Riserva Char Width 9
Col13=PrezziVersamento Char Width 4
****************************************************
Il seguente codice mi provoca un errore:
PathStr = Forms![F_Start]![Path_FilePagamenti]	'path completo del file da
importare
DoCmd.TransferText acImportFixed, "ImportaPolizze", "T_Pagamenti", PathStr, 0
Errore:
the text file specification "ImportaPolizze" does not exist. You cannot
import, export or link using the specification.
Qualcuno mi sa aiutare?
grazie
Luca Manetti
_____________________________________________________________________________
      ___   ___    __
     /  /  /   ¦  /  ¦ Luca Manetti         ICIMSI / SUPSI
    /  /  /    ¦ /   ¦ ing. dipl. ETH       Scuola Universitaria Professionale
   /  /  /  /¦ ¦/    ¦                      Galleria 2
  /  /  /  / ¦   /¦  ¦                      CH-6928 Manno
 /  /__/__/__¦__/ ¦  ¦
/___________/     ¦__¦
     /  /mailto:
lman...@cimsi.cim.ch
       tel.
++41/91/610.89.64
    /__/
http://www.onemore.ch
		   fax.
++41/91/610.89.70
____________________________________________________________________________
_
--
Posted from
vigna.cimsi.cim.ch
 [193.72.254.3]
via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: Specifiche d'importazione

author: Sib

text:
>"Luca Manetti" <
lman...@cimsi.cim.ch
> ha scritto nel messaggio
news:3.0.5.32.20001207152537.009dc330@mailhost...
>Salve a tutti.
>Ho un problema con le specifiche d'importazione.
>
>Ho creato il file "schema.ini" contenente le specifiche d'importazione per
>un file e l'ho messo nella stessa directory del file *.txt da importare.
>Il percorso completo del file  lo assegno alla variaile "PathStr"
>
>E perche' hai fatto una cosa simile?
>Usare le normali e comodissime specifiche di importazione di Access non ti
e' pieciuto?
>Tra l'altro sono semplicissime da usare sia nel codice sia nelle macro.
Sib
PS: non postare in HTML


title: Controllare il posizionamento delle righe all'interno di una maschera.

author: Calamus

text:
Vorrei che all'interno di una form a maschere continue un certo record
comparisse in una posizione precisa, per esempio come terza riga della
finestra visibile.
Ciò dovrebbe avvenire, per esempio, dopo la scelta di un record da
parte dell'utente, la sua elaborazione tramite altra maschera, e il
ritorno alla maschera originale, abitualmente riemessa dopo un
requery.
Nel caso la form contenga molte righe, dopo un requery la maschera si
riposiziona sulla prima riga del recordset e la riga scelta ed
elaborata potrebbe non essere più visibile in quanto si trova più
avanti. Bisognerà agire sulla barra di scorrimento verticale per
ritrovarla. A maggior ragione non sarà selezionata in quanto risulterà
selezionata la prima riga del recordset.
Desidero invece che il record scelto ed elaborato venga a trovarsi
nella parte visibile della finestra. Questo sono riuscito ad ottenerlo
tramite Bookmark e RecordsetClone.
Quello che non riesco ad ottenere è il pieno controllo del
posizionamento del record. Infatti il record (anche utilizzando
Bookmark e RecordsetClone) mi si piazza come prima riga della
finestra. Io invece vorrei che comparisse ad una certa altezza nella
finestra, possibilmente allo stesso posto dove si trovava prima della
scelta e dell'elaborazione.
In breve: selezionando una riga (record) posso conoscere in quale
posizione si trova all'interno della finestra visibile relativa alla
maschera continua e successivamente, dopo un requery, ripresentare la
maschera con il record allo stesso posto della finestra visibile? E
possibilmente selezionato?
Grazie a tutti.


author: Alberto S.

text:
On Sat, 28 Feb 2004 18:44:39 +0100, Calamus <
cal...@libero.it
> wrote:
>Vorrei che all'interno di una form a maschere continue un certo record
>comparisse in una posizione precisa, per esempio come terza riga della
>finestra visibile.
[cuttone]
Prova a leggere nella guida in linea 'Proprietą SelTop'
Ciao
--
Alberto
No alle guerre


title: ciclo for each ... next

text:
Ciao a tutti sono Stefano neofita di Access.
Avrei bisogno di una spiegazione. Ho qualche difficoltà a capire il
ciclo for each .... next.
Ho trovato vari esempi ma non mi è ben chiara la sintassi. Vi sarei
grato se qualcuno avesse un pò di tempo per spiegarmi come funziona
questo ciclo.
Nel mio caso specifico devo far apparire un msgbox quando il valore
della casella di testo (rimanenza), di una maschera continua, è <= 0.
Chiaramente la maschera restituisce svariati record.
Grazie a tutti.
Stefano


title: ciclo for each ... next

author: MA

text:

Ciao i cicli sono delle operazioni ripetitive che lavorao fino al verificarsi di una determinata condizione
Puoi avere di tipo For o di tipo Do.
Con For hai For... Next e For each... Next: la differenza sta nel fatto che nel primo caso devi sapere di quanto incrementare il ciclo, nel secondo invece puoi non sapere e gli dici "per ciscuno di loro ... fai questo"
Esempi dell'uno e dell'altro: mettiamo che tu hai 10 etichette che si chiamano Etichetta1, Etichetta2 etc..
for i = 1 to 10
ctl("Etichetta" & i).caption = "ciao"
next
ma se per esempio si chiamano "Eti_Nome", "Eti_Cognome"
non puoi usarlo in quel modo e farai
for each ctl in me.controls
ctl.caption = "Ciao"
next
--
--
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access


title: ciclo for each ... next

text:
On 11 Set, 10:37, "MA" <
mas...@massimilianoamendola.it
> wrote:

Grazie Massimiliano ora mi è molto più chiaro.
Ho provato a scrivere il seguente codice:
Dim ctl As Variant
For Each ctl In Me.rimanenza
    If ctl.Text <= 0 Then
       MsgBox "attenzione", vbDefaultButton1
    Exit For
    End If
Next
Quando lo eseguo mi restituisce il seguente errore: Errore di run-time
438: proprietà o metodo non supportati dall'oggetto.
Facendo il debug mi evidenzia in giallo la seguente riga: If ctl.Text
<= 0 Then, dicendomi che clt=vuoto.
E qua non ne vengo a capo.
Ti sarei grato se mi spiegassi dove sbaglio.
Un saluto
Stefano


title: ciclo for each ... next

text:
lanc...@gmail.com
 wrote:
> On 11 Set, 10:37, "MA" <
mas...@massimilianoamendola.it
> wrote:

> Grazie Massimiliano, ora mi è molto più chiara la cosa.
> Ho cercato di applicarlo al mio caso scrivendo questo codice:
>
> Dim ctl As Variant
>
> For Each ctl In Me.rimanenza
>     If ctl.Text <= 0 Then
>          MsgBox "attenzione", vbDefaultButton1
>     Exit For
>     End If
> Next
>
>
> dove Me.rimanenza è una casella di testo
>
> Però quando faccio girare il codice mi restituisce il seguente errore:
> "Errore run time 438: Proprietà o metoto non supportati dall'oggetto.
>
> Facendo il debug mi evidenzia in giallo: For Each ctl In Me.rimanenza,
> e posizionando il mouse su "ctl" mi appare "ctl=vuoto"
>
> E qua non riesco a venirne a capo. Immagino che vada dichiarato
> qualcosa...
> Ti sarei grato per un tuo aiuto.
>
> Un saluto
>
> Stefano
Dunque se è text per capire se è vuoto devi mettere <>"" e non <=0
in ogni caso usa value non text
Poi ctl dichiaralo come Control e non come variant



title: ciclo for each ... next

text:

fatto... però ora mi da lo stesso errore ma ctl=nothing.
Ho messo <=0 perchè non devo verificare se il campo è vuoto, ma se il
valore è negativo o uguale a 0.
In pratica la maschera riporta i dati di una query, quindi la casella
di testo rimanenza non è scrivibile.
A questo punto credo che il problema sia proprio questo...
Grazie ancora
Stefano


title: Posizionarsi nei record delle sottomaschere

author: Vilcoyote

text:
Se ho una maschera [Maschera Principale] e una sottomaschera [Sottomaschera
di maschera principale] che istruzione devo utilizzare in visual basic per
spostarmi dal record corrente al record seguente nella sottomaschera?
Ciao, Vil.


author: Alex

text:
"Vilcoyote" <
v...@tiscaline.it
> wrote in message
news:9ugkho$5nq$1...@nreada.inwind.it...

Forms![NomeSub].Form.recordsetclone.movenext
Forms![NomeSub].Form.Bookmark=Forms![Nomesub].Form.Recordsetclone.Bookmark
Credo funzioni, ma non ho provato, vado a memoria....!
--
Posted from  [62.98.108.103]
via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: Evento Public o Private

author: Pisinho

text:
Buongiorno,
forse faccio una domanda stupida ma ho un dubbio .
Se un evento per esempio su un bottone ,la subroutine la faccio diventare da
Private a Public a quali problemi e di sonseguenza quali accortezze devo
avere per non incorrere in errori NON gestiti ?
Devo far diventare alcuni Eventi Public per essere richiamati da altre Form.
Saluti


title: Evento Public o Private

author: Massimo Piubelli

text:
Pisinho ha scritto:

Ciao,
secondo me il problema � concettuale, se ho bisogno di una "sub"
pubblica, la inserirei in un modulo di codice piuttosto che in una form.
Sposta il codice nel modulo, e richiamalo dalla form, � molto pi� pulito.
Ciao,
Massimo


title: Sostituzione carattere con un altro in una stringa (access 2003)

author: Ammammata

text:
Ho questo problema:
T5: "'" & Replace(Trim([a00285]);"'";"''") & "'"
in pratica sostituisco eventuali apici ' con una coppia dei medesimi ''
uno di questi apici (per il momento è solo uno ma vorrei generalizzare la
procedura) è compreso tra due coppie di virgolette doppie:
Sedia "World's Best" modello Gino Sarca
La formula sopracitata mi ignora l'apice :( e lo lascia singolo
Suggerimenti?
mi stavo inventando una cosa tipo:
sostituisci " con §
sostituisci ' con ''
sostituisci § con "
ma vediamo se c'è di meglio ;)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\


text:
Ammammata <
amma...@tiscalinet.it
> wrote in
news:Xns99116CE22B097am...@194.177.97.96
:
> mi stavo inventando una cosa tipo:
>
> sostituisci " con ง
> sostituisci ' con ''
> sostituisci ง con "
>
T5: "'" &
Replace(Replace(Replace(Trim([a00285]);Chr(34);"ง");"'";"''");"ง";Chr(34))
& "'"
non funziona...



text:
Ammammata <
amma...@tiscalinet.it
> wrote in
news:Xns99116CE22B097am...@194.177.97.96
:
> Ho questo problema:
>
> T5: "'" & Replace(Trim([a00285]);"'";"''") & "'"
>
>
mi rispondo da solo :)
il carattere che non sostituisce NON è l'apice    '   bensì questo   ’
questa fetecchia di access usa un font così piccolo che non vedevo la
differenza :(
a proposito... c'è modo di ingrandire (senza usare strani software di zoom)
il font della struttura delle query?



title: PERPLESSITA'!!!!!!!!

author: Domingo Panterani

text:
Salve a tutti, sono di nuovo a chiedere aiuto!!!!!
Intanto volevo ringraziare Sergio e Lalo per i consigli che mi hanno dato
per il mio precedente msg.
La mia perplessità odierna è di carattere più che altro filosofico, e cioè:
    non è che per capirci qualcosa di Access e usare veramente tutte le sue
potenzialità si deve imparare il visual basic o come c _ _ _ o si chiama
quel linguaggio che usa????????????????
Grazie per le risposte!!!!!!!
CIAO


title: PERPLESSITA'!!!!!!!!

author: Antonio Biso

text:
Domingo Panterani <
bluene...@libero.it
> wrote in message
avU86.62815$eB2.5...@news.infostrada.it...

Se vuoi continuare a fare i giocattoletti buoni per sbalordire le segretarie
bionde no!
Antonio


title: PERPLESSITA'!!!!!!!!

text:
"Domingo Panterani" <
bluene...@libero.it
> ha scritto nel messaggio
news:avU86.62815$eB2.5...@news.infostrada.it...

Si chiama VBA, cioè Visual Basic for Application.
Se desideri fare qualcosa di + di quello che ti preparano le
autocomposizioni (che generano comunque codice VBA) è indispensabile
imparare questo linguaggio.
Quanto? Dipende da cosa vuoi ottenere, quanto vuoi che sia bello e
funzionale e da quanto sei disposto ad investire in voglia e tempo x
impararlo.
--
Silvio
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access


title: PERPLESSITA'!!!!!!!!

author: Alessandro Cara

text:
Domingo Panterani ha scritto:

come lo chiameresti uno che compra una Ferrari e poi usa solo la prima?
a.cara


title: PERPLESSITA'!!!!!!!!

author: Sergio MAZZA

text:
"Domingo Panterani" <
bluene...@libero.it
> ha scritto nel messaggio
news:avU86.62815$eB2.5...@news.infostrada.it...

Tu che ne dici? Se leggi i messaggi che parlano di macro ti renderai conto
che non sono adatte per applicazioni che richiedono un maggior controllo di
tutti i processi. Certo è un passaggio quasi obbligato; inizi con la macro
che apre la maschera x o report y e poi ti rendi conto che ti serve
"qualcosa di più". Bene, quel qualcosa di più è VBA (Visual Basic for
Application)...
Ciao.


title: PERPLESSITA'!!!!!!!!

author: Rob

text:
"Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
news:NzU86.62835$eB2.5...@news.infostrada.it...

Per le more qualcosina ...
Per le rosse poi, non ne parliamo!
Mandi, Rob.


title: PERPLESSITA'!!!!!!!!

text:
Rob <dg.rob[noSPam]@
libero.it
> wrote in message
Bky96.78537$eB2.6...@news.infostrada.it...

Però alle rosse glie puzza!
Antonio


title: aprire una cartella di risorse del computer da access

text: come se la aprissi da risorse del computer sapete come si fą?


author: sv

text:
Simba883 ha scritto:
> come se la aprissi da risorse del computer sapete come si fą?
Con W2000 apro esplora risorse:
    Dim stAppName As String
    stAppName = "c:\winnt\explorer.exe"
    Call Shell(stAppName, 1)
--
rgrds
SC
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


text:
> > come se la aprissi da risorse del computer sapete come si fą?
>
> Con W2000 apro esplora risorse:
>
>     Dim stAppName As String
>     stAppName = "c:\winnt\explorer.exe"
>     Call Shell(stAppName, 1)
>
> --
> rgrds
> SC
>
> --
grazie.


title: Accorpare Campo Cognome e Nome

author: Tennis

text:
Buongiorno a tutti

ho questa esigenza in Access 2003 , ho circa un migliaio di allievi inseriti
con Campo Cognome e Campo Nome
Considerando l'inutilita' di tale divisione e provocandomi problemi di
Cognomi identici in altre funzioni del programma che pesca dalla Tabella
Anagrafica , vorrei accorpare in un unico Campo Allievo i due campi cognome
e nome
Esiste una procedura in automatico ?
Meglio se non si crea un terzo campo ( per questioni di relazioni ) ma si
accorpa nome e Cognome nel Campo Cognome ( che poi rinomino )
Grazie per le eventuali risposte


title: Accorpare Campo Cognome e Nome

author: Karl Donaubauer

text:
Tennis wrote:
> ho questa esigenza in Access 2003 , ho circa un migliaio di allievi
> inseriti con Campo Cognome e Campo Nome
> Considerando l'inutilita' di tale divisione e provocandomi problemi di
> Cognomi identici in altre funzioni del programma che pesca dalla
> Tabella Anagrafica , vorrei accorpare in un unico Campo Allievo i due
> campi cognome e nome
> ...

Č una idea malissima e contro la regola no 1 di normalizzazione.
Se hai bisogno di una combinazione di Cognome e Nome basta
una semplice espressione in una query:

Cognome & " " & Nome

Se ci sono piů "problemi di Cognomi identici in altre funzioni"
descrivili meglio.

--
Ciao
Karl
*********
Access FAQ:
http://www.donkarl.com/it


title: Accorpare Campo Cognome e Nome

text:
Grazie per la risposta

effetivamente so di andare contro la regola di normalizzazione , ma non
capisco il vantaggio ( nel mio database ) di allievi della Scuola Tennis
divisi in nome e Cognome
Non trovo nessun vantaggio pratico , non devo fare statistiche su nomi e
cognome
Quando nel settore contabilita' e pagamenti , richiamo la tabella , vorrei
in un unico campo il nome completo , altrimenti in ricevuta di pagamento
tramite una combo box di richiamo mi viene solo il cognome
es.
Rossi ha pagato la sua quota , ma io ho parecchi Rossi nel database , quando
richiamo la tabella tramite la combo box posso pescare solo da un campo
Rossi o Bianchi  , io non so quale Rossi ha pagato , se Rossi Carlo o Rossi
Marco
Ultima cosa
non capisco gli svantaggi ( sempre nel mio Database ) di avere nome e
cognome in un unico campo Allievo

Grazie di tutto

"Karl Donaubauer" <
NoS...@donkarl.com
> ha scritto nel messaggio
news:9qpj4t...@mid.individual.net...



title: Accorpare Campo Cognome e Nome

text:
Tennis wrote:
> Karl Donaubauer ha scritto:
>>...
>> Se hai bisogno di una combinazione di Cognome e Nome basta
>> una semplice espressione in una query:
>>
>> Cognome & " " & Nome
> ...
> Quando nel settore contabilita' e pagamenti , richiamo la tabella ,
> vorrei in un unico campo il nome completo , altrimenti in ricevuta di
> pagamento tramite una combo box di richiamo mi viene solo il cognome
> es. Rossi ha pagato la sua quota , ma io ho parecchi Rossi nel database ,
> quando richiamo la tabella tramite la combo box posso pescare solo da
> un campo Rossi o Bianchi  , io non so quale Rossi ha pagato , se
> Rossi Carlo o Rossi Marco
> ...

In un database č meglio di non identificare una persona solo
con Cognome + Nome (cosa fai se ci sono 2 Mario Rossi?)
ma con un campo univoco come p.e. "Id" del tipo contatore
che sarebbe anche la chiave primaria della tabella e la
colonna associata della combo.

Se hai un tale campo Id nella tabella la creazione guidata di
Access ti crea la combo nel modo descritto sopra con la
colonna associata invisibile. Per vedere o scegliere il nome
completto ho gią scritto come puoi procedere in una query
(e in espressioni in maschere, report ecc.).



title: Accorpare Campo Cognome e Nome

text:
In effetti  in tabella c'e ovviamente il campo id che fa da contatore,
quindi non dovrebbe sussistere il problema di due Mario Rossi , sarebbe lo
stesso anche nel  campo solo Cognome con due Rossi ,
ripeto non vedo i vantaggi ( solo nel mio database ) di avere i campi
separati , se poi devo intervenire con una query come dici tu per riunirli
!!! solo per stampare una fattura con nome e cognome senza intervenire su
query e combo , su maschere e report
Poi sulla normalizzazione sbagliata sono d'accordissimo
Grazie ancora
Ciao

"Karl Donaubauer" <
NoS...@donkarl.com
> ha scritto nel messaggio
news:9qprv1...@mid.individual.net...



title: Accorpare Campo Cognome e Nome

author: BFS

text:

assicurati che il campo cognome abbia dimensione sufficiente a contenere
cognome e nome.

supponendo che la tua tabella si chiami Allievi

a questo punto crei una nuova query, vai in visualizzazione sql e scrivi

update allievi set cognome=cognome + ' ' + nome

salva le query ed eseguila

(una sola volta o fai il macello)

ciao
BFS


title: Accorpare Campo Cognome e Nome

text:
Tennis wrote:
> Karl Donaubauer ha scritto:
>>>> ...
>>>> Se hai bisogno di una combinazione di Cognome e Nome basta
>>>> una semplice espressione in una query:
>>>>
>>>> Cognome & " " & Nome
> ...
> In effetti  in tabella c'e ovviamente il campo id che fa da contatore,
> quindi non dovrebbe sussistere il problema di due Mario Rossi ,
> sarebbe lo stesso anche nel  campo solo Cognome con due Rossi ,
> ripeto non vedo i vantaggi ( solo nel mio database ) di avere i campi
> separati , se poi devo intervenire con una query come dici tu per
> riunirli !!! ...

Se vuoi assolutamente farlo, puoi usare l'espressione di soppra
nella riga "Aggiorna a" di una query di aggiornamento per
riempire un campo per Cognome+Nome.



title: Accorpare Campo Cognome e Nome

text:
Grazie ho lavorato ovviamente su una copia per non fare danni
tutto ok
so che vado contro la regola di normalizzazione , ma mi serve cosi'
grazie ancora
Ciao

"BFS" <B...@BFSBFS.it> ha scritto nel messaggio
news:4f47beb6$0$1381$4faf...@reader2.news.tin.it...



title: Accorpare Campo Cognome e Nome

text:
On 24 Feb, 20:08, "Tennis" <
i...@tennisrovellasca.it
> wrote:
> Grazie ho lavorato ovviamente su una copia per non fare danni
> tutto ok
> so che vado contro la regola di normalizzazione , ma mi serve cosi'
> grazie ancora
> Ciao
>
> "BFS" <B...@BFSBFS.it> ha scritto nel messaggionews:4f47beb6$0$1381$4faf...@reader2.news.tin.it...
>
>
>
> > Il 24/02/2012 14:25, Tennis ha scritto:
> >> Buongiorno a tutti
>
> >> ho questa esigenza in Access 2003 , ho circa un migliaio di allievi
> >> inseriti con Campo Cognome e Campo Nome
> >> Considerando l'inutilita' di tale divisione e provocandomi problemi di
> >> Cognomi identici in altre funzioni del programma che pesca dalla Tabella
> >> Anagrafica , vorrei accorpare in un unico Campo Allievo i due campi
> >> cognome e nome
> >> Esiste una procedura in automatico ?
> >> Meglio se non si crea un terzo campo ( per questioni di relazioni ) ma
> >> si accorpa nome e Cognome nel Campo Cognome ( che poi rinomino )
> >> Grazie per le eventuali risposte
>
> > assicurati che il campo cognome abbia dimensione sufficiente a contenere
> > cognome e nome.
>
> > supponendo che la tua tabella si chiami Allievi
>
> > a questo punto crei una nuova query, vai in visualizzazione sql e scrivi
>
> > update allievi set cognome=cognome + ' ' + nome
>
> > salva le query ed eseguila
>
> > (una sola volta o fai il macello)
>
> > ciao
> > BFS- Nascondi testo citato
>
> - Mostra testo citato -

Niente polemiche chiaramente, ma ti serve così xchè nn hai pensato ad
altro e vuoi fare assolutamente così.....
Nn ho idea delle relazioni e delle query nel tuo db, ma sono CERTO
oltre ogni dubbio che puoi (anzi dovresti) fare anche con i campi
divisi. Basta una concatenazione di stringhe per averli insieme (come
ti suggerisce il buon Karl) o, se proprio vogliamo sparare alle mosche
con un cannone, un nuovo campo nella tabella dove li riunisci (ed
infrangi ancora le regole di normalizzazione....). Mi fai un esempio
di una procedura in cui sarebbe uno svantaggio averli divisi? Se nella
tua combo nn riesci basterebbe inserire come source "SELECT id, (Nome
& " " & Cognome)  AS NomeCompleto, Indirizzo....FROM....." e hai la
tua bella casella combinata come vuoi visualizzarla tu....


title: Accorpare Campo Cognome e Nome

text:
Ciao e grazie per l'interessamento al mio problema, ovvio che non la prendo
come una polemica
dunque , considera che aver diviso il campo cognome e nome , ( sono
d'accordo che non e' corretto ) a me provoca problemi
quando nella tabella Pagamenti io richiamo attraverso una Combobox il nome
allievo dalla Tabella Allievi e mi appare solo un campo , che posso
scegliere .
Scegliendo il campo cognome io stampero' una ricevuta di pagamento solo con
il campo cognome e data importo ecc.
Ora avendo cognomi doppi ( Rossi , Bianchi ) faccio fatica a risalire
all'effettivo allievo che ha pagato
Es.
rossi - 1 rata 100 Euro - 12 febbraio Saldo

se nel campo avessi anche il nome otterrei

rossi marco - 1 rata 100 Euro - 12 febbraio Saldo

ovvio che un buon utilizzatore risolve il problema , ma io faccio il maestro
di tennis , e quindi faccio fatica a fare cose che per voi sono normali ,
Secondo te avrei grossi problemi ad aver in un unico campo nome e cognome ?
Secondo me no , non devo fare statistiche o calcoli complessi solo stampare
le ricevute di pagamento in maniera rapida
Se c'e una soluzione che un principiante come me puo' mettere in atto , ben
venga
Ti ringrazio ancora per il supporto

"Fair87" <
roby...@gmail.com
> ha scritto nel messaggio
news:7f4e3326-04d4-4428...@i2g2000vbv.googlegroups.com...

Niente polemiche chiaramente, ma ti serve cosě xchč nn hai pensato ad
altro e vuoi fare assolutamente cosě.....



title: Fare click su un pulsante da un'altra maschera

author: Matteo F

text:
Scusate il titolo poco sensato ma vorrei fare quello che segue:
ho un pulsante che gestisce del codice complicato (e a me
sconosciuto)(è un pulsante che aggiorna un tree view).
Vorrei che quando faccio click su un pulsante di un altra maschera (un
pulsante che aggiunge delle voci da visualizzare poi nel tree view)
venga eseguito tutto il codice che esegue il primo pulsante.
Non ditemi di fare copia-incolla perchè non funziona..
grazie


text:

La procedura nella maschera col tree view dev'essere
dichiarato Public, p.e.
Public Sub MioBelloPulsante_Click
Certo quella maschera dev'essere aperta. Poi basta
chiamare la procedura dall'altra maschera con:
Forms!NomeMascheraColTreeview.MioBelloPulsante_Click
--
HTH
Karl
*********
Access FAQ:
www.donkarl.com/it


text:
Karl Donaubauer ha scritto:

Mmmm..
Ho fatto come hai detto ma mi dà questo errore:
"Impossibile trovare la maschera "Maschera_Principale" a cui si fa
riferimento..."
Eppure è caricata


text:
Matteo F wrote:
> Karl Donaubauer ha scritto:
>>> Scusate il titolo poco sensato ma vorrei fare quello che segue:
>>> ho un pulsante che gestisce del codice complicato (e a me
>>> sconosciuto)(è un pulsante che aggiorna un tree view).
>>> Vorrei che quando faccio click su un pulsante di un altra maschera
>>> (un pulsante che aggiunge delle voci da visualizzare poi nel tree
>>> view) venga eseguito tutto il codice che esegue il primo pulsante.
>>> Non ditemi di fare copia-incolla perchè non funziona..
>>
>> La procedura nella maschera col tree view dev'essere
>> dichiarato Public, p.e.
>>
>> Public Sub MioBelloPulsante_Click
>>
>> Certo quella maschera dev'essere aperta. Poi basta
>> chiamare la procedura dall'altra maschera con:
>>
>> Forms!NomeMascheraColTreeview.MioBelloPulsante_Click
> ...
> Mmmm..
> Ho fatto come hai detto ma mi dà questo errore:
> "Impossibile trovare la maschera "Maschera_Principale" a cui si fa
> riferimento..."
> Eppure è caricata
Prima prova se una "Maschera_Principale" veramente
è aperta con un codice semplice come:
Msgbox Forms!Maschera_Principale.Name
Se ti dà un errore sbagli qc. nel nome o riferimento.
Se non ti dà un errore posta il tuo codice (copia/incolla)
che chiama l'altro e la prima righa (la dicchiarazione)
del codice chiamato.
--
cu



text:
Mistero mi dà sempre errore. Eppure non ci sono errori nel nome della
maschera anche se ho un dubbio. Il primo sviluppatore del programma (io
sono negato ma non fino a questo punto) ha chiamato la maschera
"Maschera Principale" con un bello spazio in mezzo. Come lo gestisco
questo spazio nel nome?
In ogni caso vi posto il codice.
Questo è il codice del pulsante con il quale vorrei eseguire anche il
codice dell'altro pulsante di aggiornamento albero:
Private Sub cmdAddCategoria_Click()
If [Form_Sottomaschera Categoria Elenco].AllowAdditions = False Then
    [Form_Sottomaschera Categoria Elenco].AllowAdditions = True
    [Form_Sottomaschera Categoria Elenco].cmdAddCategoria.Caption =
"OK"
Else
    [Form_Sottomaschera Categoria Elenco].AllowAdditions = False
    [Form_Sottomaschera Categoria Elenco].cmdAddCategoria.Caption =
"Aggiungi"
End If
MsgBox Forms!Form_Maschera_Principale.Name        'che mi dà errore
End Sub
Questo invece è il codice del pulsante che mi aggiorna l'albero:
Public Sub cmdAlbero_Click()
    Dim Nod As Node
    Dim TV As TreeView
    Set TV = Me.TreeView0.Object
    Set Nod = TreeView0.SelectedItem
    selezionato = Nod.tag
    CaricaDatiTreeView
    TreeView0.SetFocus
    CaricaSottomaschera (selezionato)
End Sub
Spero che sappiate trovare una soluzione!
grazie ancora


text:
Matteo F wrote:
> Mistero mi dà sempre errore. Eppure non ci sono errori nel nome della
> maschera anche se ho un dubbio. Il primo sviluppatore del programma (io
> sono negato ma non fino a questo punto) ha chiamato la maschera
> "Maschera Principale" con un bello spazio in mezzo. Come lo gestisco
> questo spazio nel nome?
> In ogni caso vi posto il codice.
> Questo è il codice del pulsante con il quale vorrei eseguire anche il
> codice dell'altro pulsante di aggiornamento albero:
>
> Private Sub cmdAddCategoria_Click()
>
> If [Form_Sottomaschera Categoria Elenco].AllowAdditions = False Then
Finora usi la sintassi per classi invece della sintassi standard
per oggetti di Access:
If Forms![Sottomaschera Categoria Elenco].AllowAdditions = False Then
In genere è anche meglio evitare spazi nei nomi degli oggetti.
Vedi anche
www.donkarl.com.it
 FAQ 1.5 Denominazioni.
>     [Form_Sottomaschera Categoria Elenco].AllowAdditions = True
>     [Form_Sottomaschera Categoria Elenco].cmdAddCategoria.Caption =
> "OK"
> Else
>     [Form_Sottomaschera Categoria Elenco].AllowAdditions = False
>     [Form_Sottomaschera Categoria Elenco].cmdAddCategoria.Caption =
> "Aggiungi"
> End If
>
> MsgBox Forms!Form_Maschera_Principale.Name        'che mi dà errore
MsgBox Forms!Maschera_Principale.Name
> End Sub
>
> Questo invece è il codice del pulsante che mi aggiorna l'albero:
>
> Public Sub cmdAlbero_Click()
Che puoi chiamare con:
Forms!Maschera_Principale.cmdAlbero_Click
--
HTH



text:
Karl Donaubauer ha scritto:

Continua a darmi lo stesso errore. Non capisco proprio...


title: inviare una fattura per email con la stessa grafica di quella stampata su carta

text:
nel report stampato su carta della fattura ci sono dei rettangoli
ombreggiati per abbellire la fattura, ma quando lo stesso report lo invio
per email arriva un .rtf con solo testo senza rettangoli
vorrei che arrivasse invece la stessa grafica che esce quando stampo su
cartaceo secondo voi è possibile?
non voglio considerare il formato snapshot in quanto ogni destinatario di
fattura dovrebbe averlo installato.
sapete magari se e come posso inviare il reports in formato acrobat?
Grazie a tutti.


text:
"Simba883" <
simb...@libero.it
> ha scritto nel messaggio
news:bk6kfg$8dp$1...@lacerta.tiscalinet.it...

Se usi un modem per l'invio dei fax e hai la stampante fax, attribuisci il
report a quella stampante
MAssimiliano


text:
> Se usi un modem per l'invio dei fax e hai la stampante fax, attribuisci il
> report a quella stampante
> MAssimiliano
>
il fatto è che devo creare un file formato pdf perchè quello mantiene la
grafica e poi inviarlo a mezzo email come allegato, per mandarlo a mezzo
email con allegato con winsock sono capace, ma non so creare un file pdf con
un certo nome in un certo percorso del pc.
vorrei fare tutto da vba se è possibile includere qualche ocx o dll sapete
se esiste qualcosa?
Grazie.


title: gestione analisi cliniche

author: Luigi

text:
Salve a tutti,
vorrei crearmi un programmino per la stampa dei risultati delle analisi
per un laboratorio di analisi cliniche ma mi sono subito reso conto che
non è cosa da poco perchè sono incappato in molte difficoltà. Ma
proseguiamo con ordine.
Ogni volta che una persona viene al laboratorio presenta un'impgnativa
che va registrata con alcuni dati anagrafici e sanitari. Fin qui tutto
bene. Ogni impegnativa può però contenere al massimo 8 prestazioni.
1° problema: se uso delle relazioni, così come ho fatto, come faccio
a limitare ad otto il numero dei record collegati a quello
dell'impegntiva?
Andiamo avanti. Scelgo quindi le otto prestazioni da una tabella che
contiene tutti questi dati e il lavoro cosiddetto di accettazione è
finito.
Una volta effettuate le analisi dovrei però inserire i valori e qui
nascono un bel pò di problemi perchè ogni prestazione può avere un
numero di verso di parametri. Cerco di essere più chiaro: le analisi
delle urine hanno otto parametri, quelle del colesterolo 5 e così via.
La soluzione che avevo in mente era quella di creare le seguenti
tabelle:
Impegnative: IdImpegnativa, identificativo, cognome, nome,...
Prestazioni: IdPrestazione, nome, codice, prezzo
Parametri: IdParametro, nome,
valorimediU,valorimeediD,IdPrestazione(campo collegato con la tabella
Prestazini)
PrestErogate: IdErogazione,IdImpegnativa, IdPrestazione
Dovrei quindi collegare la tabella PrestErogate con Impegnative e
sempre PrestErogate con Prestazioni
Come faccio adesso a fare in modo che ogni volta che scelgo
nell'impegnativa una determinata prestazione mi vengano richiamati i
paremetri associati proprio a quella prestazione. Credo che dovrei
inserire un'altra tabella ma non riesco a capire come!
Le relazioi sono giuste? e per quanto riguarda l'interfaccia come
potrei organizzarla?
Ciao e grazie!
Luigi


title: gestione analisi cliniche

author: SunRex

text:
"Luigi" <
luigia...@gmail.com
> ha scritto nel messaggio
news:1116065254.0...@g44g2000cwa.googlegroups.com...









Ciao e grazie!
Luigi
Una domanda.
Sai che cosa è un LIS o LIMS?
SunRex


title: gestione analisi cliniche

text:
>
> Una domanda.
> Sai che cosa è un LIS o LIMS?
>
> SunRex
No!


title: gestione analisi cliniche

text:
"Luigi" <
luigia...@gmail.com
> ha scritto nel messaggio
news:1116071321.6...@z14g2000cwz.googlegroups.com...

No!
Mi sembrava
Lascia perdere.
SunRex


title: gestione analisi cliniche

text:
SunRex ha scritto:

Scusa ma non capisco! E' qualcosa che riguarda lo sviluppo del
programma?
Ciao,
Luigi


title: gestione analisi cliniche

text:
"Luigi" <
luigia...@gmail.com
> ha scritto nel messaggio
news:1116157973....@g43g2000cwa.googlegroups.com...


Per LIS si intende il Laboratory Information System cioè qualsiasi
programma per la gestione delle informazioni (analisi cliniche) di un
laboratorio analisi.
Normalmente esistono delle Software House specializzate in questo campo che
producono
programmi tipo
Italab ,PowerLab,Astrolab etc etc.
Tanto per farti rendere conto Italab di cui ho conoscenza diretta lavora su
DB Oracole.
Ora fare "un programmino per la stampa dei risultati delle analisi per un
laboratorio di analisi cliniche"
in access ,a meno che tu usi Access solo come FE e ti appoggi almeno ad SQL
Server è semplicemente impossibile
data la mole di dati che anche se il lab è piccolo dovresti gestire(Access
2000 regge fino a 2 giga)
.Anche così non è uno scherzo in quanto dovresti almeno per le analisi
eseguite in automatico (chimica clinica,ematologia,coagulazione
,immunometria) sviluppare anche dei moduli per interfacciare il tuo
programma con le varie macchine che hanno normalmente protocolli
di interfacciamneto differenti l'una dall'altra e dovresti chiedere alle
varie ditte produttrici delle macchine le specifiche.Questo a meno di non
obbligare il personale del lab ad inserire a manina santa i risultati cosa
piuttosto singolare al giorno d'oggi.Infatti per esempio una macchina
che esegue emocromi produce per ogni campione circa 35 risultati numerici.Di
questi normalmente solo una ventina vengono "refertati" cioè
se il tuo piccolo lab fa almeno 20 emocromi al giorno gli utenti si
dovrebbero inserire a manina santa 400 risultati solo per gli emocromi.
Se per assurdo qualche pazzo volesse usare un programma che non prevede
l'interfacciamento eccoti una serie di problemi da risolvere:
Gestione delle analisi
Finchè il paziente richiede solo test semplici (azotemia glicemia
creatinemia PT solo se gli dai la ratio etc etc) non ci sono problemi ma se
mi chiede
 per esempio la creatinina clearance gli devo fare la creatinemia, la
creatinuria ,misurare il volume delle urine delle 24 h farmi i calcoli e
dargli i risultati.
Chiaramente in fase di inserimento se ho una richiesta di creatinina
clearance devo inserire di default anche la creatinemia (quindi il paziente
oltre che a portare l'urina delle 24h dovrà fare un prelievo di sangue) ed
avrò bisogno di un campo per il volume delle urine.Il cielo poi non voglia
che ti chiedano un esame di batteriologia ,per es. un bel tampone
faringeo.Come lo gestisci dato che avresti questi tipi di risultati
:Sterile,Inquinato(ripete),un ceppo patogeno (ma allora gli devi fare
l'antibiogramma sia per identificarlo che per vedere a quali antibiotici è
resistente ,o meno ed a che concentrazione (si chiama MIC) ma il paziente se
non ha richiesto l'antibiogramma non lo ha nemmeno pagato....e come famo gli
diciamo che ci sta un patogeno che molto probabilmente è la causa del suo
problema ma non gli diciamo quale è perchè non ce lo ha pagato?
Gestione dei valori di riferimento
Ogni analisi ha i suoi bei valori di riferimento che sono dati dalla tecnica
usata per la determinazione dell'analita in questione.
Per esempio la concentrazione degli elettroliti Na,K,Cl  può essere data in
millimoli/L o milliEq/L.Stica dirai tu, mica tanto ti dico io perchè
se cambiate la tecnica analitica o vi convertite a mano (ancora) le unità di
misura oppure ti tocca inserire i nuovi valori di riferimento.Non
sottovalutare
questo aspetto dato che in un lab c'è un turn over di tecnologia molto
alto.Aggiungo che molte analisi hanno valori di riferimento associati alla
condizione e/o
età del paziente come per esempio gli ormoni nelle donne a seconda del ciclo
il PSA negli uomini a seconda dell'età le LUC che nei bambini non sono
patologiche.
Devi anche prevedere risultati che non hanno un valore di riferimento come
per esempio un esame microscopico di uno striscio di sangue.In questo caso
l'analista
descrive quello che vede sul vetrino con testo libero.Pensa che per
l'analisi delle urine è previsto sia un risultato descrittivo che uno
chimico fisico con valori di riferimento.
Controllo della refertazione
Durante la routine giornaliera dovrai sempre sapere quali referti sono:
Completi
Parzialmente refertati
Stampati almeno una volta
Gestione dei risultati
Alcune analisi devono essere gestite(in particolare i risultati) solo da
personale si del lab ma incaricato espressamente dal primario di questo.
Mi riferisco ad esempio al test dell'HIV.Questo per ovvi motivi di
riservatezza e perchè oltre all'obbligo di denuncia al ministero della
salute in caso
di positività il risultato deve essere comunicato al paziente in modo
particolare.
Gestione dei "Fogli di lavoro" o liste
Dato che abbiamo il programma usiamolo, quindi dopo aver inserito i tuoi bei
pazienti con le loro belle analisi dovrai prevedere che il tuo programma
sia in grado di "distribuire" il lavoro alle varie sezioni in cui è composto
il lab.Bada che anche se il lab è piccolo sta cosa dovrai farla e quindi
oltra che a caricare
le analisi dovrai associare ogni analisi ad ogni sezione del lab prevedendo
anche che di tanto in tanto e per ragioni a me ancora sconosciute le analis
vengono cedute od acquistate dalle varie sezioni.Chiaramente se di un
analisi c'è il risultato dentro non vorrai stamparla perchè a te interessa
solo quello che c'è da fare.
Mi fermo qui, ho volutamente omesso la gestione dell'anagrafica del paziente
che è un discorso a parte ma è simile a tanti altri gestionali.
Se hai dei dubbi chiedi.
SunRex
P.S.
Per interesse personale....
Che tipo di analisi dovrebbe far sto laboratorio e quante?