title: Come compattare un BE

author: CarloCos

text:
Leo ha scritto
>Come posso compattare un db_be dal front end
Ti trascrivo due moduli. Il primo: (chiamalo: basDiskFree)
Option Compare Database
Option Explicit
' GetDriveType return values
Public Const gclngDriveNotMapped As Long = 1
Public Const DRIVE_REMOVABLE As Long = 2
Public Const DRIVE_FIXED As Long = 3
Public Const DRIVE_REMOTE As Long = 4
Public Const DRIVE_CDROM As Long = 5
Public Const DRIVE_RAMDISK As Long = 6
Declare Function apiGetDiskFreeSpace& Lib "kernel32" Alias
"GetDiskFreeSpaceA" _
  (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, _
   lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, _
   lpTotalNumberOfClusters As Long)
Declare Function apiGetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
  (ByVal strDrive As String) As Long
Declare Function apiWNetAddConnection Lib "mpr.dll" Alias
"WNetAddConnectionA" _
  (ByVal strNetPath As String, ByVal strPassword As String, _
   ByVal strLocalName As String) As Long
Declare Function apiWNetCancelConnection Lib "mpr.dll" Alias
"WNetCancelConnectionA" _
  (ByVal strName As String, ByVal lngForce As Long) As Long
Public Function GetDiskFree(ByVal strPath As String) As Variant
'---------------------------------------------------------------------------
----
'Function:  GetDiskFree
'Developer: Russell Sinclair
'Date:      March 1998
'Purpose:   Determines the amount of free space on a drive
'In:        Drive letter
'Out:       Free space in bytes
'---------------------------------------------------------------------------
----
On Error GoTo Err_GetDiskFree
    'Setting so that the function does not attempt to map the
    'network drive to a PC reserved letter
    Const cstrFirstNetDrive As String = "F"
    'Used in the return values from apiGetDiskFree to calculate free
    'space
    Dim lngSecsPerClus As Long
    Dim lngBytesPerSec As Long
    Dim lngFreeClus As Long
    Dim lngTotalClus As Long
    Dim fstrDrive As String * 3
    Dim lngReturn As Long
    Dim lngI As Long
    Dim strDriveMap As String
    Dim boolAddedNet As Integer
    If strPath = "" Then strPath = CurDir
    If Left(strPath, 2) = "\\" Then  'UNC path, add a connection and check
the new mapping
        lngI = Asc("Z") - 64
        Do While lngI >= (Asc(cstrFirstNetDrive) - 64) And Left(strPath, 2)
= "\\"
            strDriveMap = Chr(lngI + 64) & ":"
            If apiGetDriveType(strDriveMap) = gclngDriveNotMapped Then
                lngReturn = apiWNetAddConnection(ParsePathOrFile(strPath,
True), _
                  vbNullString, strDriveMap)
                strPath = strDriveMap
                boolAddedNet = True
            End If
            lngI = lngI - 1
        Loop
    End If
    If Len(strPath) < 3 Then strPath = Left(strPath, 1) & ":\"
    fstrDrive = Left(strPath, 3)
    lngReturn = apiGetDiskFreeSpace(fstrDrive, lngSecsPerClus,
lngBytesPerSec, _
      lngFreeClus, lngTotalClus)
    GetDiskFree = lngFreeClus * lngSecsPerClus * lngBytesPerSec
    'If a net path was added earlier, delete it
    If boolAddedNet Then Debug.Print apiWNetCancelConnection(strDriveMap,
True)
Exit_GetDiskFree:
    Exit Function
Err_GetDiskFree:
    MsgBox Err.Description
    Resume Exit_GetDiskFree
End Function
IL SECONDO: (chiamalo basRepairAndCompact)
Option Compare Database
Option Explicit
Const gcErrCantOpenExclusive = 3356          'Error if database cannot be
opened exclusively
Public Function CompactAttachedDatabases() As Integer
'---------------------------------------------------------------------------
-------
'Function:  CompactAttachedDatabases
'Author:    Russell Sinclair <
rsin...@teranet.on.ca
>
'Date:      August, 1997
'Purpose:   Compacts all databases attached to the current database.
'Calls:     UniqueArray, GetDiskFree, ParsePathOrFile
'Notes:     Requires the AttachDetails type.
'---------------------------------------------------------------------------
-------
On Error GoTo Err_CompactAttachedDatabases
    Const cTempDatabase = "~REPCPT~.MDB"        'Temp database to compact
into
    Const cAccess = ";DATABASE="                'Leader of Connect property
if Access table
    Dim avarDBs() As Variant                    'Array of attached databases
    Dim avarUniqueDBs() As Variant              'Unique array of databases
    Dim db As DATABASE                          'Current database
    Dim lngFoundAttached As Long                'Number of attached tables
    Dim lngDatabases As Long                    'Number of attached
databases
    Dim tdf As TableDef                         'TableDef variable for
looping
    Dim lngI As Long                            'Counter variable for
looping
    Set db = CurrentDb
    lngFoundAttached = 0
    'Loop through the tables in the database
    For Each tdf In db.TableDefs
        'Check the table to make sure it is an attached Access table
        If (tdf.Attributes And dbAttachedTable) And (Left(tdf.Connect,
Len(cAccess)) = cAccess) Then
            lngFoundAttached = lngFoundAttached + 1
            ReDim Preserve avarDBs(lngFoundAttached - 1)
            avarDBs(lngFoundAttached - 1) = Mid(tdf.Connect, Len(cAccess) +
1, Len(tdf.Connect))
        End If
    Next
    'Get a unique list of databases
    lngDatabases = UniqueArray(avarUniqueDBs, avarDBs, lngFoundAttached)
    'Repair & Compact each of the databases
    For lngI = 0 To lngDatabases - 1
        If FileLen(avarUniqueDBs(lngI)) < GetDiskFree(avarUniqueDBs(lngI))
Then
            'Check to see if the Temp database already exists and delete it
if it does
            If Dir(ParsePathOrFile(avarUniqueDBs(lngI), True) & "\" &
cTempDatabase) <> "" Then _
              Kill ParsePathOrFile(avarUniqueDBs(lngI), True) & "\" &
cTempDatabase
            Application.Echo True, "Stò riparando i database allegati " &
"'" & avarUniqueDBs(lngI) & "'"
            RepairDatabase avarUniqueDBs(lngI)
            Application.Echo True, "Compatto i database allegati " & "'" &
avarUniqueDBs(lngI) & "'"
            CompactDatabase avarUniqueDBs(lngI),
ParsePathOrFile(avarUniqueDBs(lngI), True) & "\" & _
              cTempDatabase
            Kill avarUniqueDBs(lngI)
            Name ParsePathOrFile(avarUniqueDBs(lngI), True) & "\" &
cTempDatabase As avarUniqueDBs(lngI)
            MsgBox "Database Riparato e Compattato con successo!"
        Else
            MsgBox "Insufficiente spazio su disco per riparare e compattare
i database " & avarUniqueDBs(lngI) & _
              ".@Libera più spazio su " & Left(avarUniqueDBs(lngI), 2) & "
drive!@", _
              vbCritical + vbOKOnly
        End If
        'This is where you would put in your code to mark the files as
shareable on the network
        'You could test if the file is on a network drive and then use the
shell function or an
        'API call to change the flag on the files
    Next lngI
Exit_CompactAttachedDatabases:
    DoCmd.Hourglass False
    Application.Echo True
    Exit Function
Err_CompactAttachedDatabases:
    Select Case Err.Number
        Case gcErrCantOpenExclusive
            MsgBox "La funzione non può proseguire perché una delle tabelle
allegate " & _
              "é aperta in modo esclusivo da un'altro utente.  Assicurati
che ogni utente " & _
              "sia disconnesso dal database prima di utilizzare questa
funzione.", vbCritical + vbOKOnly
        Case Else
            MsgBox "Error " & Err.Number & " " & Err.Description
    End Select
    Resume Exit_CompactAttachedDatabases
End Function
Function ParsePathOrFile(ByVal strFullFile As String, ByVal boolReturnPath
As Integer) As String
'---------------------------------------------------------------------------
-------
'Function:  ParsePathOrFile
'Author:    Russell Sinclair <
rsin...@teranet.on.ca
>
'Date:      March, 1997
'Purpose:   Returns the path or filename (without path) from filename string
'---------------------------------------------------------------------------
-------
On Error GoTo Err_ParsePathOrFile
    Dim strPath As String
    Dim strFileName  As String
    Dim lngCurrentPos As Long
    Dim lngLastPos As Long
    lngCurrentPos = InStr(strFullFile, "\")
    Do Until lngCurrentPos = 0
        lngLastPos = lngCurrentPos
        lngCurrentPos = InStr(lngCurrentPos + 1, strFullFile, "\")
    Loop
    If boolReturnPath Then
        ParsePathOrFile = Trim(Left(strFullFile, lngLastPos - 1))
    Else
        ParsePathOrFile = Trim(Right(strFullFile, Len(strFullFile) -
lngLastPos))
    End If
Exit_ParsePathOrFile:
    Exit Function
Err_ParsePathOrFile:
    MsgBox "Error " & Err.Number & " " & Err.Description
    Resume Exit_ParsePathOrFile
End Function
Public Function UniqueArray(ByRef ravarReturnArray As Variant, ByRef
ravarSourceArray As Variant, ByVal lngSourceElements As Long) As Long
'---------------------------------------------------------------------------
-------
'Function:  UniqueArray
'Author:    Russell Sinclair <
rsin...@teranet.on.ca
>
'Date:      August, 1997
'Purpose:   Returns an array with unique values from an array with multiple
'           instances of values.
'---------------------------------------------------------------------------
-------
On Error GoTo Err_UniqueArray
    Dim lngRetElements As Long
    Dim lngI As Long
    Dim varCurrValue As Variant
    Dim lngJ As Long
    Dim lngCurrIndex As Long
    Dim boolNoMatch As Integer
    lngRetElements = 0
    For lngI = 0 To lngSourceElements - 1
        varCurrValue = ravarSourceArray(lngI)
        boolNoMatch = True
        lngJ = 0
        Do While boolNoMatch And lngJ <= lngRetElements - 1
            If ravarReturnArray(lngJ) = varCurrValue Then boolNoMatch =
False
            lngJ = lngJ + 1
        Loop
        If boolNoMatch Then
            ReDim Preserve ravarReturnArray(lngRetElements)
            ravarReturnArray(lngRetElements) = varCurrValue
            lngRetElements = lngRetElements + 1
        End If
    Next lngI
    UniqueArray = lngRetElements
Exit_UniqueArray:
    Exit Function
Err_UniqueArray:
    MsgBox "Error " & Err.Number & " " & Err.Description
    Resume Exit_UniqueArray
End Function
Esegui la funzione: CompactAttachedDatabases quando e dove vuoi.
Ciao, Carlo
--
Posted from
ro...@www.paola.antares.it
 [195.216.145.2]
via Mailgate.ORG Server -
http://www.mailgate.org


title: Come compattare un BE

author: Federico Luciani

text:

Guarda nel Sito Comune sez Tips 'Compattare tutti i BackEnd
dal FrontEnd.'
E' testato con A97, provalo con il 2000 e fammi sapere
--
Federico
--------------------------------------
Non si puo' compilare un .mdb in .exe
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------


title: Come compattare un BE

author: Leo

text:
Ho provato i moduli che mi hai postato ma nel secondo non mi riconosce le
variabili
Dim db As Database
Dim tdf As TableDef
Non so se la funzione e' compatibile con Access 2000.
Che tu sappia, questa funzione puo' essere eseguita anche dagli mde? Ho
notato ad es. che dbengine.compactdatabase non funziona con gli mde.
Grazie, Leo.


title: Come compattare un BE

text:
Non ho provato "Compattare tutti i BackEnd dal FrontEnd" perche' ho visto
che c'e' dentro dbengine.compactdatabase che a quanto pare non funziona se
eseguito da un Mde.
Saluti, Leo.


title: Cancellare un file

author: Easysmile

text:
Access97
win98
Una tabella e' composta da records ognuno dei quali e' relativo ad un
file contenuto in una data folder di windows (la tabella ha un campo
testo per il percorso C:\folder del File).
Nel caso in cui cancello un record della tabella, ho la necessita' che
venga cancellato anche il file associato (il database e' un archivio
di immagini)
Come posso fare?
Grazie in anticipo per ogni aiuto
Carlo


title: Cancellare un file

author: Roberto da casa

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:d8c3b747.01061...@posting.google.com...

Con l'istruzione Kill (vedi help).
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Cancellare un file

text:
> Con l'istruzione Kill (vedi help).
Innanzi tutto grazie.
Ho utilizzato lo statement Kill con il quale mi pare di capire che il
file viene completamente eliminato, infatti non ne rimane traccia
nemmeno nel cestino.
C'e' il modo per far si che il file possa in extremis essere
recuperato? in poche parole e' possibile "spostarlo" nel cestino
invece di eliminarlo?
Grazie di nuovo e scusate per la domanda banale.
Carlo


title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:d8c3b747.01061...@posting.google.com...

Non saprei proprio come si possa spostare da Access un file nel cestino di
Windows.
Puoi perņ cautelarti chiedendo conferma all'utente se vuole veramente
cancellare il file.
Oppure puoi crearti sul desktop un folder che userai come se fosse il
cestino e nel quale copi, con l'istruzione FileCopy (vedi help), il tuo file
prima di cancellarlo; svuoterai questo folder manualmente come avresti fatto
con il cestino.
Non mi viene in mente altro, ma non si sa mai che qualche altro
frequentatore che con le API ci fa anche il caffč....



title: Cancellare un file

text:
> Oppure puoi crearti sul desktop un folder che userai come se fosse il
> cestino e nel quale copi, con l'istruzione FileCopy (vedi help), il tuo
file
> prima di cancellarlo; svuoterai questo folder manualmente come avresti
fatto
> con il cestino.
Ovviamente la soluzione era questa, peccato che non sapessi dell'istruzione
fileCopy:-(
> Non mi viene in mente altro, ma non si sa mai che qualche altro
> frequentatore che con le API ci fa anche il caffè....
Se non proprio il caffè.....potrebbero comunque aiutarmi ad inserire nel
record di ogni immagine alcuni dati quali a esempio la grandezza in Kb,
oppure le dimensioni orizzontale e verticale?
Oppure ci sono delle proprietà o metodi dell'oggetto Application che possono
fare allo scopo?
Grazie nuovamente.
Carlo


title: Cancellare un file

author: Sergio MAZZA

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gn4k9$9qjn6$1...@ID-29643.news.dfncis.de...
>
--------- omissis -------------
>
> Se non proprio il caffè.....potrebbero comunque aiutarmi ad inserire nel
> record di ogni immagine alcuni dati quali a esempio la grandezza in Kb,
> oppure le dimensioni orizzontale e verticale?
> Oppure ci sono delle proprietà o metodi dell'oggetto Application che
possono
> fare allo scopo?
>
> Grazie nuovamente.
>
> Carlo
Con le funzioni messe a disposizione da access'97 puoi:
- leggere la dimensione del file:
Es. (dall'help)
'-----------------
In questo esempio la funzione FileLen viene utilizzata per restituire la
lunghezza di un file espressa in byte. Nell'esempio FILEPROV è un file che
contiene dati.
Dim MySize
MySize = FileLen("FILEPROV") ' Restituisce la lunghezza
 ' del file espressa in byte.
'-----------------
- leggere la data e ora dell'ultima modifica:
Es. (dall'help)
'-----------------
In questo esempio la funzione FileDateTime viene utilizzata per ottenere la
data e l'ora di creazione e dell'ultima modifica di un file. Il formato di
data e ora visualizzato sarà quello delle impostazioni internazionali del
sistema.
Dim MyStamp
' Presupposto: FILEPROV è stato modificato l'ultima
' volta il 12 febbraio 1994 alle 16.35.47.
' Presupposto: impostazioni internazionali
' Italia/Italiano.
MyStamp = FileDateTime("FILEPROV") ' Restituisce "12/2/94 16.35.47".
'-----------------
Per le dimensioni (orizzontale/verticale) dei file immagine, se non li apri
perlomeno in anteprima, non credo sia possibile leggere le proprietà se non
conosci il formato binario del file (jpg, bmp, etc. etc.)...
Ciao.


title: Cancellare un file

text:
> Dim MySize
> MySize = FileLen("FILEPROV") ' Restituisce la lunghezza
>  ' del file espressa in byte.
rinnovo i ringraziamenti!
io nel frattempo avevo trovato la API "GetFileSize", ma FileLen fa tutto in
una riga di codice mentre per la APi servono metri e metri di definizioni di
costanti, funzioni ecc.. :-(
> Per le dimensioni (orizzontale/verticale) dei file immagine, se non li
apri
> perlomeno in anteprima, non credo sia possibile leggere le proprietą se
non
> conosci il formato binario del file (jpg, bmp, etc. etc.)...
Le immagini sono tutte Jpg e sono pure aperte.........come potrei fare???
Carlo


title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gnfmi$9hit2$1...@ID-29643.news.dfncis.de...

Prova con:
'---------
Me.nomeControlloImmagine.ImageHeight
Me.nomeControlloImmagine.ImageWidth
---------
Ciao.


title: Cancellare un file

text:
> Me.nomeControlloImmagine.ImageHeight
> Me.nomeControlloImmagine.ImageWidth
Bingo!
Stupidamente avevo pensato di non usare queste proprietà perchè credevo che
ritornasseso le dimensioni della cornice del controllo e non le dimensioni
reali dell'immagine in esso caricata!:-(
Posso chiedervi l'ultimo aiutino?
Il mio form è un "multiple Forms", cioè visualizza diversi records
contemporaneamente.
Essendo ovviamente il controllo dell'immagine un controllo Unbound, il
controllo stesso mi visualizza su tutti i records l'immagine relativa al
primo record.
Io invece vorrei ovviamente visualizzare la giusta immagine per ogni
record....
al momento ho scritto questo codice nell'evento Form_Load
NomeControllo.Picture = MyPath & [ImageName]
Ma non ho la più pallida idea di come posso ovviare al mio problema.......
Grazie in anticipo.
Carlo


title: Cancellare un file

author: Roberto dal portatile

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gpqbn$aahk2$1...@ID-29643.news.dfncis.de...
>
[CUT]
> Posso chiedervi l'ultimo aiutino?
> Il mio form č un "multiple Forms", cioč visualizza diversi records
> contemporaneamente.
> Essendo ovviamente il controllo dell'immagine un controllo Unbound, il
> controllo stesso mi visualizza su tutti i records l'immagine relativa al
> primo record.
> Io invece vorrei ovviamente visualizzare la giusta immagine per ogni
> record....
>
> al momento ho scritto questo codice nell'evento Form_Load
>
> NomeControllo.Picture = MyPath & [ImageName]
>
> Ma non ho la piů pallida idea di come posso ovviare al mio problema.......
>
> Grazie in anticipo.
> Carlo
>
Anziché generare il codice VBA:
NomeControllo.Picture = MyPath & [ImageName]
a fronte dell'evento "Su caricamento" della tua maschera, generalo a fronte
dell'evento "Su corrente".



title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gpqbn$aahk2$1...@ID-29643.news.dfncis.de...
>
> > Me.nomeControlloImmagine.ImageHeight
> > Me.nomeControlloImmagine.ImageWidth
>
> Bingo!
> Stupidamente avevo pensato di non usare queste proprietà perchè credevo
che
> ritornasseso le dimensioni della cornice del controllo e non le dimensioni
> reali dell'immagine in esso caricata!:-(
Ti confondi con Me.nomeControlloImmagine.Height e Width;
>
> Posso chiedervi l'ultimo aiutino?
spara,
> Il mio form è un "multiple Forms", cioè visualizza diversi records
> contemporaneamente.
> Essendo ovviamente il controllo dell'immagine un controllo Unbound, il
Uat??!! Ma parla come magni!! Che significa UnBound? Intendi non associato?
> controllo stesso mi visualizza su tutti i records l'immagine relativa al
> primo record.
Ahhh; forse sì, intendi non associato.
> Io invece vorrei ovviamente visualizzare la giusta immagine per ogni
> record....
>
> al momento ho scritto questo codice nell'evento Form_Load
>
> NomeControllo.Picture = MyPath & [ImageName]
>
> Ma non ho la più pallida idea di come posso ovviare al mio problema.......
A parte gli scherzi; se è un controllo non associato dovresti invece
associarlo al campo della tabella dove è inserito il percorso con il nome
del file e dovrebbe funzionare...
> Grazie in anticipo.
> Carlo
Ciao.


title: Cancellare un file

text:
> generalo a fronte
> dell'evento "Su corrente".
avevo provato anche cosě, ma ancora non riesco a risolvere.
Siccome il record corrente č comunque sempre e solo 1, nella cornice
immagine ottengo l'immagine collegata al record di volta in volta corrente
il quale si riflette su tutti i records...
......o ho forse sbagliato qualcosa io????
Grazie e ciao
Carlo


title: Cancellare un file

text:
> Uat??!! Ma parla come magni!! Che significa UnBound? Intendi non
associato?
Sorry! il problema è uso Access in inglese.....anzi per dir la verità.....
in Thai!:-)
> A parte gli scherzi; se è un controllo non associato dovresti invece
> associarlo al campo della tabella dove è inserito il percorso con il nome
> del file e dovrebbe funzionare...
...mmhhh...che mi risulti la cornice immagine è un oggetto che non si può
associare....o mi sbaglio????
ho provato a scrivere qualcosa del tipo
=MyPath & [ImageName]
in Picture nella finestra proprietà del controllo, ma appena salvo scompare
tutto!:-(
forse tu intendi che devo usare un controllo associato OLE?
Sinceramente vorrei evitare di ricorrere all'OLE per ragioni di...spazio,
visto che con il database devo immagazzinare centinaia (o forse migliaia,
ancora non so:-) di immagini, e comunque il db dovrà andare sul web server,
dove non avrò la possibilità di sfruttare oggetti OLE con l'ASP.....
O forse non c'è proprio altro modo????
Grazie e ciao
Carlo


title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gq9i5$a8q9v$2...@ID-29643.news.dfncis.de...
>
> Sorry! il problema è uso Access in inglese.....anzi per dir la verità.....
> in Thai!:-)
Ti piace la vita semplice...
> ...mmhhh...che mi risulti la cornice immagine è un oggetto che non si può
> associare....o mi sbaglio????
Ho toppato io..
> ho provato a scrivere qualcosa del tipo
>
> =MyPath & [ImageName]
>
> in Picture nella finestra proprietà del controllo, ma appena salvo
scompare
> tutto!:-(
>
> forse tu intendi che devo usare un controllo associato OLE?
> Sinceramente vorrei evitare di ricorrere all'OLE per ragioni di...spazio,
> visto che con il database devo immagazzinare centinaia (o forse migliaia,
> ancora non so:-) di immagini, e comunque il db dovrà andare sul web
server,
> dove non avrò la possibilità di sfruttare oggetti OLE con l'ASP.....
Ma devi gestire le immagini con access o con asp; perché non credo che le
situazioni siano simili.
>
> O forse non c'è proprio altro modo????
Sì un'altro modo ci sarebbe; quello di non far visualizzare l'immagine se
non espressamente richiesta. Se questa è un'alternativa valida, puoi
scegliere di far visualizzare l'immagine selezionando il record ed
impostando la proprietà Picture con il path e nome file.
>
> Grazie e ciao
>
> Carlo
Ciao.


title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gq9i3$a8q9v$1...@ID-29643.news.dfncis.de...
> > generalo a fronte
> > dell'evento "Su corrente".
>
> avevo provato anche così, ma ancora non riesco a risolvere.
>
> Siccome il record corrente è comunque sempre e solo 1, nella cornice
> immagine ottengo l'immagine collegata al record di volta in volta corrente
> il quale si riflette su tutti i records...
>
> ......o ho forse sbagliato qualcosa io????
>
> Grazie e ciao
>
> Carlo
>
Mi è venuto un atroce dubbio, ovvero che la visualizzazione della tua
maschera è a Maschere continue. Se così è non puoi usare un controllo
immagine per il motivo da te indicato, il record corrente è solo e comunque
uno.
Quindi un controllo immagine, non avendo la proprietà origine controllo, ha
significato solo se inserito in una maschera con visualizzazione a Maschera
singola o in un report.
Se poi vuoi comunque visualizzare i record con una maschera a Maschere
continue, togli dalla maschera il controllo immagine; l'immagine puoi
inserirla in una maschera popup (visualizzazione a Maschera singola) che
contiene solo il controllo immagine; apri la maschera popup a fronte
dell'evento "Su apertura" della tua maschera; a fronte dell'evento "Su
corrente" della tua maschera genera il seguente codice VBA:
[Forms]![NomeMascheraPopup]![NomeControlloImmagine].Picture = Me!MyPath &
Me!ImageName
Così facendo, passando da una riga all'altra della maschera continua, vedrai
nella maschera popup l'immagine relativa al record corrente.
O così o cambi la visualizzazione della maschera a Maschera singola.



title: Cancellare un file

text:
> Ti piace la vita semplice...
semplicemente diciamo che da dove mi trovo non posso fare diversamente!:-)
> Ma devi gestire le immagini con access o con asp; perché non credo che le
> situazioni siano simili.
>
allora spiego tutto dall'inizio:
sto costruendo un database di immagini col quale inserire in un'unica
tabella il percorso dei file immagine contenuti in una data cartella e
diversi dati come descrizione dell'immagine, località, tipologia ecc.,
mi serve poi una maschera di visualizzazione in locale che mi consenta (Se
possibile:-) di vedere tutte le immagini riguardanti la stessa località o la
stessa tematica ecc, contemporaneamente in modo da cancellare quelle simili,
scegliere quelle di default per ogni località ecc.
la tabella andrà poi on-line, dove avrò un motore di ricerca che selezionerà
le immagini a seconda appunto dei dati precedentemente inseriti (es tutte le
foto di Bangkok, tutte le foto di Phuket, tute le foto con spiagge, con
cascate.. ecc..)
> Se questa è un'alternativa valida, puoi
> scegliere di far visualizzare l'immagine selezionando il record ed
> impostando la proprietà Picture con il path e nome file.
>
ahiahiahi!:-(
come detto la cosa importante sarebbe proprio quella di visualizzarle
contemporaneamente in modo da poterle confrontare.....
Se provassi con una variabile array del tipo ImageName(i) che mi scrive
sulla proprietà Picture il giusto percorso per ogni record, magari con un
ciclo.....???......Boh!:-))
Grazie e ciao
Carlo


title: Cancellare un file

author: Sergio MAZZA (Ufficio Stampa)

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gqf7a$agt2b$1...@ID-29643.news.dfncis.de...
---------- omissis --------------
>
> ahiahiahi!:-(
> come detto la cosa importante sarebbe proprio quella di visualizzarle
> contemporaneamente in modo da poterle confrontare.....
>
> Se provassi con una variabile array del tipo ImageName(i) che mi scrive
> sulla proprietà Picture il giusto percorso per ogni record, magari con un
> ciclo.....???......Boh!:-))
>
> Grazie e ciao
> Carlo
Allora fai una maschera con che elenca le immagini (path e nome) e al clic
(o doppio clic) ti si apre un'altra maschera per vedere l'immagine; a questo
punto potresti clonare (con VBA) la maschera "Anteprima immagine" tante
volte per quente volte fai clic (o doppio) sul nome dell'immagine.
Così avresti una maschera per l'elenco delle immagini presenti e tante
maschere con l'anteprima delle immagini per quante volte hai fatto doppio
clic...
Ciao.


title: Cancellare un file

text:
> Mi è venuto un atroce dubbio, ovvero che la visualizzazione della tua
> maschera è a Maschere continue. Se così è non puoi usare un controllo
> immagine per il motivo da te indicato, il record corrente è solo e
comunque
> uno.
infatti il punto era proprio questo, e cioè che volevo fare una cosa
impossibile:-)
> Quindi un controllo immagine, non avendo la proprietà origine controllo,
ha
> significato solo se inserito in una maschera con visualizzazione a
Maschera
> singola o in un report.
> Se poi vuoi comunque visualizzare i record con una maschera a Maschere
> continue, togli dalla maschera il controllo immagine; l'immagine puoi
> inserirla in una maschera popup (visualizzazione a Maschera singola) che
> contiene solo il controllo immagine; apri la maschera popup a fronte
> dell'evento "Su apertura" della tua maschera; a fronte dell'evento "Su
> corrente" della tua maschera genera il seguente codice VBA:
>
> [Forms]![NomeMascheraPopup]![NomeControlloImmagine].Picture = Me!MyPath &
> Me!ImageName
>
> Così facendo, passando da una riga all'altra della maschera continua,
vedrai
> nella maschera popup l'immagine relativa al record corrente.
> O così o cambi la visualizzazione della maschera a Maschera singola.
>
alla fine ho adottato una soluzione diversa che mi ha parzialmente risolto
il problema e che vi illustro per sapere che cosa ne pensate:
ho inserito nel Form Header (quindi fuori dall'area dettagli che si
ripresenta per ogni record) 4 cornici immagine.
Ho poi fatto una barra di navigazione che mi prende 4 records alla volta.
Cliccando sul pulsante avanti o indietro della barra, la proprietà Picture
delle 4 cornici immagine viene aggiornata ai 4 records visualizzati.
In questo modo, visto che il mio scopo era appunto quello di "confrontare"
tra loro le immagini piuttosto che visualizzarle, almeno ne posso vedere 4
alla volta.
Rimane un problema estetico dato dal fatto che nell'header le cornici devono
avere una disposizione orizzontale mentre i records si sviluppano ovviamente
in verticale.
Anche qui ho adottato una parziale soluzione facendo variare il colore del
bordo della cornice immagine corrispondente al record corrente per una
maggiore prontezza visiva sul record selezionato.
All'evento click di ogni cornice immagine poi ho fatto in modo che il
corrispondente record vada a fuoco mentre all'evento DoubleClick mi si apre
la famosa maschera PopUp che mi illustravi tu e che uso come ingranditore.
Il lavoro finito direi che è anche piuttosto carino e se qualcuno ne fosse
interessato non ha che da dirlo.
Che cosa ne pensate?
Un Grazie con la G maiuscola a Roberto e Sergio per il preziosissimo aiuto!!
Carlo


title: Cancellare un file

author: MarcoS

text:
Easysmile <
easy...@ptty.loxinfo.co.th
> wrote in message
9gv1j0$b6ct1$1...@ID-29643.news.dfncis.de...
>
> Il lavoro finito direi che č anche piuttosto carino e se qualcuno ne fosse
> interessato non ha che da dirlo.
>
Ciao easy,
Io ho fatto un lavoro simile al tuo ma in VB6, non ho limiti di immagine e
ho utilizzato ImgThumbnail - ImgEdid - ImgAdmin.
Il mio programma č smplicemente un'archivio di foto che mediante vari campi
di ricerca ti visualizza in piccolo tutte le foto trovate (ImgThumbnail ),
poi con un click ingrandisci la singola foto (ImgEdid ).
Tutti i record sono in un db di Access, non ho capito bene se č quello che
tu volevi fare ?
Se il tuo programma non č molto grosso sarei interessato a vederlo :-)
--
Ciao Marco S.
http://digilander.iol.it/santimarco


title: Cancellare un file

text:
> Il mio programma č smplicemente un'archivio di foto che mediante vari
campi
> di ricerca ti visualizza in piccolo tutte le foto trovate (ImgThumbnail ),
> poi con un click ingrandisci la singola foto (ImgEdid ).
...mmmhh....a dire il vero io dovrei fare qualcosa in piů, nel senso che
oltre a visualizzare contemporaneamente tutte le immagini risultanti da una
ricerca con certi parametri, devo anche avere sotto mano i records
corrispondenti a tali immagini in quanto dovrň editare alcuni dati ad esso
relative. Con quello che hai fatto tu si puň fare questo?
..io di VB6 non so proprio un accidenti.....queste istruzioni che hai
utilizzato sono disponibili anche in VBA?:-(
> Tutti i record sono in un db di Access, non ho capito bene se č quello che
> tu volevi fare ?
>
> Se il tuo programma non č molto grosso sarei interessato a vederlo :-)
>
oddio!!!
quando dicevo che lo mettevo a disposizione si intendeva non a
programmatori, o almeno non a programmatori di una certa esperienza!:-)
calcola che io non lo sono assolutamente e semplicemente mi diletto a
realizzare quello che mi serve al momento per il mio lavoro, ma sono anche
convinto che se qualcuno del mestiere da una occhiata a quello che combino,
la variabile booleana ManiSuiCapelli assume immediatamente il valore
True!:-)))))
In ogni caso se proprio ti piace soffrire, magari te lo mando.
Il db compresso č di 900Kb.....magari provo a togliere quello che non
serve....
In ogni caso pensaci bene due volte:-)))
Ciao
Easy!


title: Cancellare un file

text:
Easysmile <
easy...@ptty.loxinfo.co.th
> wrote in message
9gv49b$b36u0$1...@ID-29643.news.dfncis.de...
>
> ...mmmhh....a dire il vero io dovrei fare qualcosa in piů, nel senso che
> oltre a visualizzare contemporaneamente tutte le immagini risultanti da
una
> ricerca con certi parametri, devo anche avere sotto mano i records
> corrispondenti a tali immagini in quanto dovrň editare alcuni dati ad esso
> relative. Con quello che hai fatto tu si puň fare questo?
Premetto che non sono espertissimo di VB, questo programma l'ho fatto in
collaborazione con un mio amico.
Non č possibile avere sotto mano tutti i record delle foto selezionate, in
qunato non mi serviva, perň con il taso destro sulla singola foto č
possibile fare comparire una maschera con tutte le info della foto
(possibile modifica).
> ..io di VB6 non so proprio un accidenti.....queste istruzioni che hai
> utilizzato sono disponibili anche in VBA?:-(
Non sono istruzioni ma ocx, credo che siano disponibili anche in VBA visto
che sono ocx di Windows.
> la variabile booleana ManiSuiCapelli assume immediatamente il valore
> True!:-)))))
;-))
> In ogni caso se proprio ti piace soffrire, magari te lo mando.
> Il db compresso č di 900Kb.....magari provo a togliere quello che non
> serve....
> In ogni caso pensaci bene due volte:-)))
Non sono un vero programmatore, mandamelo pure, dopo averlo pulito il piů
possibile :-))))



title: Cancellare un file

text:
"Easysmile" <
easy...@ptty.loxinfo.co.th
> ha scritto nel messaggio
news:9gv1j0$b6ct1$1...@ID-29643.news.dfncis.de...
>
[CUT]

Sicuramente la tua è una buona soluzione, come fra l'altro tutte quelle che
sono risolutive.
Se mi permetti, potrei darti un'idea che ti permetterebbe di tenere i 4
controlli immaggine in verticale invece che in orizzontale, insomma di
fianco e non sopra la maschera a visualizzazione a Maschere continue.
La mia idea è questa.
Creati una maschera con visualizzazione a Maschera singola che non abbia
origine record; fai in maniera che detta maschera sia poco più alta di
quella attuale ma più larga; inserisci nella parte destra di questa maschera
un controllo sottomaschera delle dimensioni della tua attuale maschera, così
che rimanga libera la parte sinistra della maschera; nella proprietà origine
oggetto del controllo sottomaschera scrivi il nome dell'attuale maschera;
dall'intestazione dell'attuale maschera togli i 4 controllo immagine ed
inseriscili in verticale nella zona sinistra della nuova maschera. Le
modifiche da apportare al codice VBA sono minime: quando devi fare
riferimento ai controlli immagine, invece che Me![NomeControlloImmagine]
scriverai [Forms]![NomeNuovaMaschera]![ NomeControlloImmagine].



title: Cancellare un file

text:
> Creati una maschera con visualizzazione a Maschera singola che non abbia
> origine record; fai in maniera che detta maschera sia poco più alta di
> quella attuale ma più larga; inserisci nella parte destra di questa
maschera
> un controllo sottomaschera delle dimensioni della tua attuale maschera,
così
> che rimanga libera la parte sinistra della maschera; nella proprietà
origine
> oggetto del controllo sottomaschera scrivi il nome dell'attuale maschera;
> dall'intestazione dell'attuale maschera togli i 4 controllo immagine ed
> inseriscili in verticale nella zona sinistra della nuova maschera. Le
> modifiche da apportare al codice VBA sono minime: quando devi fare
> riferimento ai controlli immagine, invece che Me![NomeControlloImmagine]
> scriverai [Forms]![NomeNuovaMaschera]![ NomeControlloImmagine].
Sei un grande!!!!!
Funziona a meraviglia!
Grazie e ciao
Carlo


title: Trasferire tabelle ODBC

author: gege

text:
Vorrei poter trasferire alcune tabelle Access in database odbc.
Sono riuscito a farlo con le macro, ma visto che le tabelle sono tante e
spesso deverse esiste un modo tramite un modulo, o programmi esterni che
fanno tale operazione?
Grazie


title: Trasferire tabelle ODBC

author: ALESSANDRO Baraldi

text:
"gege" <_
ge...@libero.it
> ha scritto nel messaggio
news:WBKxb.20924$AX1.8...@news1.tin.it...

Qual'è il Database in questione....???
"ODBC" non è un Database è solo un metodo di connessione
ad un Database....!
@Alex.


title: Trasferire tabelle ODBC

author: sunrex

text:
"gege" <_
ge...@libero.it
> ha scritto nel messaggio
news:WBKxb.20924$AX1.8...@news1.tin.it...

ODBC non è un DataBase ma un modo per collegarsi ad un DataBase.
SunRex


title: Trasferire tabelle ODBC

text:
Il dataBAse č: Sybase
"sunrex" <
sunrexs...@hotmail.it
> ha scritto nel messaggio
news:%VNxb.22225$AX1.8...@news1.tin.it...
>
> "gege" <_
ge...@libero.it
> ha scritto nel messaggio
> news:WBKxb.20924$AX1.8...@news1.tin.it...
> > Vorrei poter trasferire alcune tabelle Access in database odbc.
> > Sono riuscito a farlo con le macro, ma visto che le tabelle sono tante e
> > spesso deverse esiste un modo tramite un modulo, o programmi esterni che
> > fanno tale operazione?
> > Grazie
> >
> ODBC non č un DataBase ma un modo per collegarsi ad un DataBase.
> SunRex
>
>


title: Trasferire tabelle ODBC

text:
"gege" <_
ge...@libero.it
> ha scritto nel messaggio
news:bq8e56$ifp$1...@lacerta.tiscalinet.it...

Trasformati la macro in VBA studiatela e poi modificala
per fargli eseguire un loop per ogni tbl che vuoi trasferire
For Each tabella
        trasferisci
  loop
SunRex


title: Query di Eliminazione e di accodamento su + tabelle : HELP !

author: Fabietto

text:
Eccomi di nuovo, :-)
come si puo' fare per creare una query di eliminazione che agisca su piu'
tablelle correlate con relazione 1 a molti ?
Vorrei fare un pulsantino che mi elimini ad esempio un cliente dalla tabella
clienti e quindi anche tutti i numeri di telefono a lui relativi (lato
molti) .
Tramite una semplice query ho visto che non si puo' fare, quindi credo che
l'unica possibilita' sia quella di creare un po' di codice SQL da eseguire
prima per l'eliminazione del lato molti e poi per il lato 1. Giusto ?
E per l'ccodamento di record invece ? In questo caso non ho le idee molto
chiare:
Ho la tabella clienti in relazione 1 a m con i telefoni e quindi di nuovo 1
a m con il tipo di telefono. Dovrei riempire queste tabelle importando i
dati da un'altra tabella.
Ma come importare i dati su 2 tabelle visto che access ne fa scegliere solo
una !?
Grazie ancora per eventuali dritte !!
Fabio


text:
"Fabietto" <
fab...@supereva.it
> ha scritto nel messaggio
news:vw5v6.91859$lj4.2...@news6.giganews.com...
> Eccomi di nuovo, :-)
>
> come si puo' fare per creare una query di eliminazione che agisca su piu'
> tablelle correlate con relazione 1 a molti ?
>
> Vorrei fare un pulsantino che mi elimini ad esempio un cliente dalla
tabella
> clienti e quindi anche tutti i numeri di telefono a lui relativi (lato
> molti) .
> Tramite una semplice query ho visto che non si puo' fare, quindi credo che
> l'unica possibilita' sia quella di creare un po' di codice SQL da eseguire
> prima per l'eliminazione del lato molti e poi per il lato 1. Giusto ?
Assegna alla relazione uno-a-molti tra le due tabelle l'integrita
referenziale, richiamando anche l'opzione "Elimina record correlati a
catena". Se fai questo, ogni volta che cancelli un record sul lato uno,
Access ti cancellerà automaticamente anche tutti i record sul lato molti che
sono correlati al record cancellato. In definitiva, è sufficiente fare una
query di comando che ti cancella i clienti: Access ti cancellerà
automaticamente anche tutti i numeri di telefono dei clienti che tu hai
cancellato.
>
> E per l'ccodamento di record invece ? In questo caso non ho le idee molto
> chiare:
> Ho la tabella clienti in relazione 1 a m con i telefoni e quindi di nuovo
1
> a m con il tipo di telefono. Dovrei riempire queste tabelle importando i
> dati da un'altra tabella.
> Ma come importare i dati su 2 tabelle visto che access ne fa scegliere
solo
> una !?
>
L'accodamento o la duplicazione di record contenuti in  tabelle in relazione
uno-a-molti non si effettua con una query di accodamento (se la chiave
primaria sul lato uno è un contatore, perderesti l'integrità referenziale).
Devi farlo con del codice VBA nel quale apri dei recordset sia sulle tabelle
originali che sulle tabelle in cui vuoi fare l'accodamento; quindi, usando
le proprietà Addnew, Edit ed Update dei recordset aperti in in
registrazione, effettui l'accodamento dei record letti dai recordset aperti
sulle tabelle originali.
> Grazie ancora per eventuali dritte !!
>
> Fabio
>
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: report da query

author: Andrea

text:
Salve a tutti
allora mi spiego
da delle tabelle che precedentemente fatto ho:
1)ho fatto una maschera con sottomaschera tale sottomaschera ha un proprio
"ID"
2)ho fatto una query "stampe" che mi seleziona i dati delle due
maschere(maschera + sottomaschera) con il criterio di ricerca tramite ID
della sottomaschera. e fin qui tutto ok
3)ho fatto un report che corisponde alla query "stampe"
4)nella sottomaschera ho posto un tasto di "stampa Report"
ora clikando sopra il tasto in questiono mi si apre una finestrella che mi
richiede il numero di ID della sottomaschera. E dato che nella
sottomaschera c'è gia il sudetto numero (ID sottomaschera) vorrei sapere:
Come faccio ad assegnare in automatico il numero di "id"(della
sottomaschere) alla query ?
tramite il tasto "stampa report "
cosi che possa stampare direttamente senza dover immetere il numero di "id"
nella finestrella.
N.B.
in sintesi :
vorrei con il tasto "Stampa Report" poter stampare direttamente quello che
ho nella maschera.
senza riimettere il numero di id richiestomi della query.
e un po contorto ma...... speriamo ....
grazie
Andrea


title: report da query

author: Carlo Costarella

text:
"Andrea" <
bi...@libero.it
> ha scritto nel messaggio
news:ebesa.83507$DT4.2...@twister1.libero.it...

Nelle query che alimenta il report, nella riga dei criteri, in
corrispondenza della colonna ID, scrivi il riferimento:
Forms!TuaSottoMaschera!TuoID.
Probabilmente non funziona perchè hai usato il pulsante nella sottomaschera
che se è foglio dati o maschere continue restituisce il primo ID dell'elenco
o nessun ID; o sposti tutto nella maschera principale e in questo caso il
criterio nella query diventa
Forms!MascheraPrincipale!TuoIDMascheraPrincipale, oppure usi l'ID di join
che lega la principale alla sottomaschera.
Ancora puoi provare con la sintassi completa:
Forms![MascheraPrincipale]![SotttoMaschera].Form![TuoID].
Ci sono altre soluzioni.
Facci sapere.
Ciao, Carlo


title: Report con condizione IIF non va...

author: GM

text:
ciao a tutti... ho un report in cui ho un campo in cui deve poter essere
stampato
se nel controllo della maschera vi è idoneo o non idoneo...
=IIf([Idoneità]="Idoneo"; "L'atleta di cui sopra, sulla base della
  visita medica e dei relativi accertamenti, non presenta
controindicazioni in atto alla pratica agonistica di tale sport:";
=IIf([Idoneità]="Non Idoneo";"L'atleta di cui sopra viene dichiarato
  NON idoneo all'attività agonistica per i seguenti motivi:";" ")
ma mi dice "errore di sintassi nell'espressione. Probabilmente è stata
immessa una virgola non preceduta da un valore o da un identificatore...
quindi non mi salva il codice...
dove sbaglio ???
Ciao


title: Report con condizione IIF non va...

author: Marco

text:
Il secondo Iif senza =
"GM" <
to...@toglilibero.it
> ha scritto nel messaggio
news:L96Ei.104843$%k.25...@twister2.libero.it...



title: Report con condizione IIF non va...

text:
"Marco" <
marco.de...@tiscali.it
> ha scritto nel messaggio
news:46e0f30f$0$15564$5fc...@news.tiscali.it...
> Il secondo Iif senza =
>>
>> =IIf([Idoneità]="Idoneo"; "L'atleta di cui sopra, sulla base della
>>  visita medica e dei relativi accertamenti, non presenta
>> controindicazioni in atto alla pratica agonistica di tale sport:";
>> =IIf([Idoneità]="Non Idoneo";"L'atleta di cui sopra viene dichiarato
>>  NON idoneo all'attività agonistica per i seguenti motivi:";" ")
>>
>> ma mi dice "errore di sintassi nell'espressione. Probabilmente è
>> stata
>> immessa una virgola non preceduta da un valore o da un
>> identificatore...
>> quindi non mi salva il codice...
>> dove sbaglio ???
--------------
diavolo... ho eseguito quanto hai detto... ma ora mi esce :
"stringa non valida nell'espressione.
il limite di lunghezza massimo di una stringa è di 2048 caratteri
incluse le virgolette che la racchiudono..."
come posso fare... vi è qualche altra soluzione ???
Pino


title: Report con condizione IIF non va...

text:
"GM" <
to...@toglilibero.it
> ha scritto nel messaggio
news:Yj9Ei.107452$U01.9...@twister1.libero.it...
> --------------
> diavolo... ho eseguito quanto hai detto... ma ora mi esce :
> "stringa non valida nell'espressione.
> il limite di lunghezza massimo di una stringa è di 2048 caratteri incluse
> le virgolette che la racchiudono..."
> come posso fare... vi è qualche altra soluzione ???
> Pino
=IIf([Idoneità]="Idoneo"; "L'atleta di cui sopra, sulla base della
  visita medica e dei relativi accertamenti, non presenta controindicazioni
in atto alla pratica agonistica di tale sport:";"L'atleta di cui sopra viene
dichiarato NON idoneo all'attività agonistica per i seguenti motivi:")
Ciao.
--
Sergio MAZZA


title: Report con condizione IIF non va...

text:
"Sergio MAZZA" <
sergi...@tiscali.it
> ha scritto nel messaggio
news:fbrdc4$p64
> "GM" <
to...@toglilibero.it
> ha scritto nel messaggio
>> "stringa non valida nell'espressione.
>> il limite di lunghezza massimo di una stringa è di 2048 caratteri
>> incluse le virgolette che la racchiudono..."
>> come posso fare... vi è qualche altra soluzione ???
>> Pino
> =IIf([Idoneità]="Idoneo"; "L'atleta di cui sopra, sulla base della
>  visita medica e dei relativi accertamenti, non presenta
> controindicazioni in atto alla pratica agonistica di tale
> sport:";"L'atleta di cui sopra viene dichiarato NON idoneo
> all'attività agonistica per i seguenti motivi:")
> Sergio MAZZA
--------------
Ciao Sergio... rieccomi... ho provato la tua soluzione... ma mi esce
sempre la prima frase
anche se da maschera nella cmb scelgo "non idoneo"...forse il problema è
sull'evento click del mouse del bottone di stampa ??? ecco il codice...
Private Sub Comando50_Click()
Dim StrFiltro As String
StrFiltro = "[ID]=" & Me!ID
DoCmd.OpenReport ReportName:="Report1", View:=acNormal,
WhereCondition:=StrFiltro
End Sub
Ciao


title: Report con condizione IIF non va...

text:
"GM" <
to...@toglilibero.it
> ha scritto nel messaggio
news:B06Fi.109481$U01.9...@twister1.libero.it...
> --------------
> Ciao Sergio... rieccomi... ho provato la tua soluzione... ma mi esce
> sempre la prima frase
> anche se da maschera nella cmb scelgo "non idoneo"...forse il problema è
> sull'evento click del mouse del bottone di stampa ??? ecco il codice...
>
> Private Sub Comando50_Click()
> Dim StrFiltro As String
> StrFiltro = "[ID]=" & Me!ID
> DoCmd.OpenReport ReportName:="Report1", View:=acNormal,
> WhereCondition:=StrFiltro
> End Sub
>
>
> Ciao
Se l'id non corrisponde alla selezione "non idoneo/idoneo", allora sì cheil
problema è lì.
Ma dall'oggetto/testo del primo messaggio a questo, mi si stanno confondendo
le idee.
Ripartiamo dall'inizio; il campo [idoneità]:
- come è scritto? Con la "à" accentata? O "a" semplice?
- è in formato testo o booleano (sì/no)?
Poi pensiamo a filtrare il report...
Ciao.
--
Sergio MAZZA


title: Report con condizione IIF non va...

text:
"Sergio MAZZA" <
sergi...@tiscali.it
> ha scritto nel messaggio
news:fc2s58
>> Ciao Sergio... rieccomi... ho provato la tua soluzione... ma mi esce
>> sempre la prima frase
>> anche se da maschera nella cmb scelgo "non idoneo"...forse il
>> problema è sull'evento click del mouse del bottone di stampa ??? ecco
>> il codice...
>>
>> Private Sub Comando50_Click()
>> Dim StrFiltro As String
>> StrFiltro = "[ID]=" & Me!ID
>> DoCmd.OpenReport ReportName:="Report1", View:=acNormal,
>> WhereCondition:=StrFiltro
>> End Sub
>
> Se l'id non corrisponde alla selezione "non idoneo/idoneo", allora sì
> cheil problema è lì.
> Ma dall'oggetto/testo del primo messaggio a questo, mi si stanno
> confondendo le idee.
> Ripartiamo dall'inizio; il campo [idoneità]:
> - come è scritto? Con la "à" accentata? O "a" semplice?
ho controllato sia nella tabella che in maschera è scritto [idoneità]...
> - è in formato testo o booleano (sì/no)?
se ti riferisci a quello che è scritto nella combo è scritto in formato
testo...
ossia Idoneo - Non Idoneo
> Poi pensiamo a filtrare il report...
-------------
ho provato il codice propostomi... ossia:
=IIf([Idoneità]="Idoneo";"L'atleta di cui sopra, sulla base della visita
medica e dei relativi accertamenti, non presenta controindicazioni in
atto
alla pratica agonistica di tale  sport:";"L'atleta di cui sopra viene
dichiarato  NON idoneo all'attività agonistica per i seguenti motivi:")
e sembra funzionare però preventivamente devo cliccare il bottone
"aggiorna" che ho sulla maschera...col codice sotto...che dici è
corretto questo funzionamento ???
Private Sub aggior_Click()
On Error GoTo Err_aggior_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
Exit_aggior_Click:
    Exit Sub
Err_aggior_Click:
    MsgBox Err.Description
    Resume Exit_aggior_Click
    End Sub


title: Report con condizione IIF non va...

text:

Solo per aggiornare i dati modificati?
Private Sub aggior_Click()
If Me.Dirty Then
    Me.Refresh
End if
End Sub
Con l'F1 sulle istruzioni hai la descrizione di cosa fanno...
Ciao.
--
Sergio MAZZA


title: id3 tag degli mp3

author: SPAM domus.data@flashnet.it news.tin.it

text: come posso fare a prendere i suddetti, e metterli in una tabella di access ?


title: id3 tag degli mp3

author: AntoGal

text:
"
news.tin.it
" <NO SPAM
domus...@flashnet.it
> ha scritto...
> come posso fare a prendere i suddetti, e metterli in una tabella di access
?
Dovresti aprire il file in modalità Binary e leggerne l'header. Naturalmente
devi conoscere il "tracciato record" ID3, cioè il significato di ogni byte
in base alla posizione.
Esempio:
Dim FileOpen As Integer
FileOpen = FreeFile
Open "miofile.mp3" For Binary Access Read As #FileOpen
[lettura header ID3]
[Interpretazione ID3]
Close #FileOpen
[Apertura RecordSet]
[Scrittura records]
[Chiusura RecordSet]
I passaggi tra parentesi quadre richiedono lo studio degli esempi sulla
guida in linea di Access, e la conoscenza dell' ID3 tag.
In altre parole, F1 e Google.
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)

www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************


title: id3 tag degli mp3

author: ema

text:
Mio cuggino mi ha detto che
news.tin.it
 <NO SPAM
domus...@flashnet.it
> scrisse:
> come posso fare a prendere i suddetti, e metterli in una tabella di access ?
>
www.freshmeat.net
, cerchi mp3info e scarichi i sorgenti.
Li` trovi la soluzione.
bye!
--
Emanuele Cesena                 Attenzione! penguinpowered è morto :-/
<
ece...@libero.it
>  -  rimuovi XXX x rispondere


title: report con sottodettalio

text:
Buon giorno a tutti.
Devo fare un report che mi evidenzia dei risultati per mese sia di un
prodotto sia delle linee di aggregazione del prodotto.
Inoltre, per complicare  la cosa, in corrispondenza di ogni mese devo
anche esporre il progressivo.
Spero di trovare qualche suggerimento.
Grazie
Lucia


title: report con sottodettalio

text:
<
lucia_...@libero.it
> ha scritto nel messaggio
news:3c669df2...@powernews.libero.it...

Hai già provato con il raggruppamento (nel report) per mese, prodotto e
linee di aggregazione?
Ciao.
--
Sergio MAZZA


title: report con sottodettalio

text:


Purtroppo si, ho già provato: l'aggregazione della linea prodotto mi
crea una sola riga dove mi totalizza i risultati dell'intero anno
mentre io ho bisogno di vedere l'andamento della linea.
Ho pensato ad un sottoreport ma non riesco ad impostarlo.
Per quanto riguarda il problema dei progressivi, sono riuscita a
trovare la soluzione: bastava creare un campo con somma parziale per
gruppo.
Grazie e ciao
LUCIA


title: report con sottodettalio

text:
<
lucia_...@libero.it
> ha scritto nel messaggio
news:3c68146...@powernews.libero.it...
>
> Purtroppo si, ho già provato: l'aggregazione della linea prodotto mi
> crea una sola riga dove mi totalizza i risultati dell'intero anno
> mentre io ho bisogno di vedere l'andamento della linea.
> Ho pensato ad un sottoreport ma non riesco ad impostarlo.
>
> Per quanto riguarda il problema dei progressivi, sono riuscita a
> trovare la soluzione: bastava creare un campo con somma parziale per
> gruppo.
>
>
> Grazie e ciao
>
> LUCIA
>
Dove hai posizionato i controlli? In quale sezione? Se "l'andamento della
linea" lo inserisci nel corpo dovresti vedere i dettagli...
Ciao.
--
Sergio MAZZA


title: report con sottodettalio

author: Lucia

text:


Accidenti forse non capisco cosa intendi per controllo!
Il report non espone i singoli record ma soltanto le aggregazioni in
questa sequenza:
Linea
Prodotto
Mese
Se provo a spostare sopra il mese non ottengo più la mensilizzazione
del prodotto mentre così, non ho il dettaglio mese della linea.
Porta pazienza, forse riusciremo a capirci!
Grazie e ciao


title: report con sottodettalio

text:
"Lucia" <
lucia_...@libero.it
> ha scritto nel messaggio
news:3c6ae840...@powernews.libero.it...
>
> Accidenti forse non capisco cosa intendi per controllo!
I controlli sono gli oggetti che posizioni sul report/maschere: caselle di
testo, label etc. etc.
> Il report non espone i singoli record ma soltanto le aggregazioni in
> questa sequenza:
> Linea
> Prodotto
> Mese
>
> Se provo a spostare sopra il mese non ottengo più la mensilizzazione
> del prodotto mentre così, non ho il dettaglio mese della linea.
>
> Porta pazienza, forse riusciremo a capirci!
Beh! L'Italiano lo parliamo ed è già un passo avanti...
> Grazie e ciao
Io avrei fatto tutto il contrario:
- raggruppamento per Mese, qui ci posizioni il controllo che visualizza il
Mese;
- (al suo interno) raggruppamento per Prodotto, qui ci posizioni il
controllo che visualizza il Prodotto;
- (al suo interno) raggruppamento per Linea, qui ci posizioni il controllo
che visualizza la Linea;
se vuoi ogni dettaglio della Linea (senza raggruppamento) posizioni il
controllo dentro il corpo...
Ciao.
--
Sergio MAZZA


title: report con sottodettalio

text:
On Thu, 14 Feb 2002 08:15:50 +0100, "Sergio MAZZA"
<
sergi...@tiscalinet.it
> wrote:
>"Lucia" <
lucia_...@libero.it
> ha scritto nel messaggio
>news:3c6ae840...@powernews.libero.it...
>>
>
>> Il report non espone i singoli record ma soltanto le aggregazioni in
>> questa sequenza:
>> Linea
>> Prodotto
>> Mese
>>
>> Se provo a spostare sopra il mese non ottengo piů la mensilizzazione
>> del prodotto mentre cosě, non ho il dettaglio mese della linea.
>>
>> Grazie e ciao
>
>Io avrei fatto tutto il contrario:
>- raggruppamento per Mese, qui ci posizioni il controllo che visualizza il
>Mese;
>- (al suo interno) raggruppamento per Prodotto, qui ci posizioni il
>controllo che visualizza il Prodotto;
>- (al suo interno) raggruppamento per Linea, qui ci posizioni il controllo
>che visualizza la Linea;
>
>se vuoi ogni dettaglio della Linea (senza raggruppamento) posizioni il
>controllo dentro il corpo...
>
>Ciao.
>
>--
>Sergio MAZZA
>
Se faccio come dici ottongo un risultato di questo tipo:
gennaio
	prod. 1	linea 1	1000
	prod. 2	linea 1	200
	prod. 3	linea 2	3000
	prod. 4	linea 2	400
febbraio
	prod. 1	linea 1	290
	prod. 2	linea 1	200
	prod. 3	linea 2	4000
	prod. 4	linea 2	400
totale			9490
Io invece devo ottenere quest'altro tipo di prodotto
linea 1
	prod. 1	gen	1000
		feb	290
	tot. Prod1		1290
	prod. 2	gen	200
		feb	200
	tot. Prod2		400

andam. Linea 1
		gen	1200
		feb	490
tot.linea 1			1690

linea 2
	prod. 3	gen	3000
		feb	4000
	tot. Prod3		7000

	prod. 4	gen	400
		feb	400
	tot. Prod4		800

andam. Linea 2
		gen	3400
		feb	4400
tot.linea 2			7800

Andam. Generale
		gen	4600
		feb	4890
totale generale			9490

Quello che non riesco ad ottenere č l'andamento mensile del livello di
totalizzazione per linea e generale.
Stň quasi pensando di creare una tabella di appoggio dove parcheggiare
i valori dei diversi livelli di aggregazione! ... Ma non mi piace,
deve esserci un'altra soluzione!!!
Ciao


title: Filtrare una maschera

author: Giorgio

text:
Un saluto a tutti. Sto muovendo i primi passi con Access e sarei grato se
qualcuno potesse aiutarmi.
Vorrei filtrare i records di una maschera che contiene diversi campi.
Nella maschera ho inserito 5 caselle combinate di cui la prima associata ad
un campo della tabella chiamata "Archivio" mentre le altre hanno come
origine riga 4 elenchi da me precostituiti. Vorrei che i 5 filtri fossero
indipendenti, cioè avere la possibilità di scegliere quali e quanti filtri
applicare. Supponendo di chiamare A,B,C,D,E le 5 caselle combinate, vorrei
essere in grado di applicare solo il filtro A, oppure il C, o l'A and D,
ecc.
Il tutto riuscendo a far capire al programma di non considerare le caselle
vuote, altrimenti non mi troverebbe nessun record. Un grazie di cuore per
l'aiuto.


title: Filtrare una maschera

author: Roberto da casa

text:
"Giorgio" <
gio...@tin.it
> ha scritto nel messaggio
news:JSwS6.28159$vt.2...@news1.tin.it...

Forse la cosa più semplice per un principiante è fare così.
Creati una query (chiamala Query1) basandola sulla tabella che contiene i
dati da visualizzare.
Nelle righe criteri di Query1 relative ai cinque campi che verranno
selezionati dalle caselle combinate (chiamate come tu dici A, B, C, D, E)
scrivi:
Like Nz([Forms]![Maschera1]![A]; "*")
per il campo selezionato dalla combo A
Like Nz([Forms]![Maschera1]![B]; "*")
per il campo selezionato dalla combo B, e così via.
Creati una maschera chiamata Maschera1 la cui origine record sia Query1 e la
cui visualizzazione sia a Maschere continue.
Nell'intestazione (intestazione e non corpo) di Maschera1 inseriscici le 5
caselle combinate e chiamale A, B, C, D, E.
A fronte dell'evento "Dopo aggiornamento" di tutte e 5 le caselle combinate
genera il seguente codice VBA:
Me.Requery
A questo punto apri Maschera1; nel corpo della maschera vedrai tutti i
record contenuti nella tabella; mano a mano che selezionerai qualcosa dagli
elenchi delle caselle combinate verrà affinato il filtro della maschera;
naturalmente lascerai a Null il valore delle combo in base alle quali non
vuoi effettuare alcuna selezione.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Dubbio sull'uso dei filtri

author: Gabriele

text:
Salve a tutti,
scusate la domanda forse un pň banale,sono un neofita...
Mi trovo a dover filtrare dati da una tabella, volendo ad esempio
conoscere,partendo dal nome di un cliente,altre eventuali informazioni.
Recentemente ho creato delle funzioni in VBA per la ricerca e la successiva
compilazione di tabelle temporanee a partire dal dato inserito per la
ricerca. Ora chiedo: vi č un modo piů rapido, utilizzando i filtri, di
specificare un dato qualsiasi per la ricerca? Dagli esempi visti in Access,
mi sembra le le condizioni WHERE siano comunque fisse nel tempo, mentre a me
servono condizioni decise di volta in volta dall'utente.
In attesa di aiuti, porgo i miei ringraziamenti.
Gabriele "VentodiMaggio"


title: Dubbio sull'uso dei filtri

author: lbo dal portatile

text:
>ricerca. Ora chiedo: vi č un modo piů rapido, utilizzando i filtri, di
>specificare un dato qualsiasi per la ricerca? Dagli esempi visti in Access,
>mi sembra le le condizioni WHERE siano comunque fisse nel tempo, mentre a me
>servono condizioni decise di volta in volta dall'utente.
amico mio, la condizione Where e' un pezzo di sql.  sql vuol dire
structured query language.  e' un linguaggio, piu' o meno standard per
tutti i programmi che gestiscono i database nel quale si scrivono
query.
un esempio di sql puo' essere:
SELECT Campo1, Campo2 FROM Tabella WHERE Campo1 = qualcosa AND
Campo3=qualcos'altro ORDER BY Campo4 DESC
cioe': visualizzami i campi Campo1 e Campo2 di tutti i record della
tabella Tabella per i quali record Campo1 valga qualcosa e Campo3
valga qualcos'altro, poi metti i record ordinati secondo il valore di
Campo4 in ordine dal piu' grande al piu' piccolo.
una query di access e' definibile in linguaggio sql, piu' precisamente
con una cosiddetta stringa sql.
purtroppo sull'help in linea l'sql non e' trattato come argomento a
se', ma lo dovresti trovare in qualsiasi manuale che si occupa di
database.
dal punto di vista della programmazione, una stringa sql altro non e'
che una vera e propria stringa di testo, manipolabile a volonta'.
quando hai ottenuto la stringa sql che ti serve, la puoi eseguire o la
puoi passare ad una query gia' esistente.
quello che a te serve e' creare del cosiddetto sql dinamico, cioe'
creare piu' o meno da zero una stringa di testo secondo le regole
dell'sql, ed eseguirla o passarla ad una query.  vediti sull'help
runsql e execute.
ad esempio:
dim ssql as string
ssql = "SELECT * FROM Anagrafica WHERE Matricola = " &
Forms!Maschera!txtMatricola
cioe' fai conto di avere una maschera che si chiami Anagrafica, che
contenga un controllo che si chiami txtMatricola.  se nel controllo
txtMatricola c'e' scritto 17, la riga li' sopra varra':
SELECT * FROM Anagrafica WHERE Matricola = 17
a questo punto puoi usare la stringa sql per aprire un recordset, per
assegnarla come sorgente dati di una maschera, come sql di una query
ed aprire la query stessa... vedi tu.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/


title: Join

author: Dario

text:
Qualcuno sa darmi qualche dritta su dove posso trovare del materiale
didattico sulle relazioni tra tabelle o query di tipo join?


title: Join

author: Sergio MAZZA

text:
"Dario" <
dari...@libero.it
> ha scritto nel messaggio
news:CoqKd.3320$QG6....@twister2.libero.it...
> Qualcuno sa darmi qualche dritta su dove posso trovare del materiale
> didattico sulle relazioni tra tabelle o query di tipo join?
>
Cerca informazioni sul linguaggio SQL e database relazionali.
Per esempio:
http://www.harrrdito.it/corsi/sql_003.asp
http://www.suffritti.it/SQLTutorial.htm
Ciao.
--
Sergio MAZZA


title: Query con problema DSUM

author: fabià

text:
salve a tutti, ho un problemino nella creazione di una query:
ho una tabella1 con 4 campi, [ID], [Categoria], [Prezzo], [Quantità] e
una tabella2 con un campo solo[Categorie] dove sono elencate le 10
categorie:
vorrei creare una query che dovrà essere l'origine di un report con
come primo campo le mie 10 categorie prese dalla tabella 2, nel
secondo campo la quantità di prodotti per ogni categoria.
qui sta il problema: volevo usare la funzione DSUM, ma dove la metto?
e soprattutto come faccio a parametrizzare i suoi criteri a seconda
della categoria del primo campo??
spero di essere stato chiaro.
ciao e grazie a chiunque possa insegnarmi qualcosa.
Saluti
Fabià


title: Query con problema DSUM

text:
"fabià" <fabi...@SPAMyahoo.com> ha scritto nel messaggio
news:3dd16836....@powernews.inwind.it...

A mio avviso non c'è bisogno di usare la funzione DSum e la Tabella2: è
sufficiente creare una query di raggruppamento basata su Tabella1 che abbia
il seguente codice SQL:
SELECT Tabella1.Categoria, Sum(Tabella1.Quantità) AS SommaDiQuantità
FROM Tabella1
GROUP BY Tabella1.Categoria;
Comunque, al livello didattico, se il campo CAtegoria è di tipo Testo e vuoi
usare la Tabella2 e la funzione DSum, questo è il codice SQL della query:
SELECT Tabella2.Categoria, Val(DSum("Quantità", "Tabella1", "Categoria=" &
Chr$(34) & [Categoria] & Chr$(34))) AS Totale
FROM Tabella2;
 Seinvece il campo Categoria è di tipo Numerico:
SELECT Tabella2.Categoria, Val(DSum("Quantità", "Tabella1", "Categoria=" &
[Categoria] AS Totale
FROM Tabella2;
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Query con problema DSUM

text:


complico un pelo la cosa:
nella Tabella1 c'è un quinto campo chiamato [Genere], io vorrei
che nella mia query ci fosse un campo come quello che mi hai insegnato
e altri due in cui la somma viene fatta sui record in cui
[Genere]=donna o uomo oltre ad essere ragruppati per categoria.
cosa devo aggiungere al codice? (la sintassi di DSUM che hai scritto
non la conosco!
grazie Roberto, come al solito mi hai aperto nuove strade di access da
studiare.
Saluti
Fabià


title: Query con problema DSUM

text:
"fabià" <fabi...@SPAMyahoo.com> ha scritto nel messaggio
news:3dd2b998....@powernews.inwind.it...
[CUT]
> complico un pelo la cosa:
> nella Tabella1 c'è un quinto campo chiamato [Genere], io vorrei
> che nella mia query ci fosse un campo come quello che mi hai insegnato
> e altri due in cui la somma viene fatta sui record in cui
> [Genere]=donna o uomo oltre ad essere ragruppati per categoria.
> cosa devo aggiungere al codice? (la sintassi di DSUM che hai scritto
> non la conosco!
>
Prova con una query che abbia il seguente codice SQL:
SELECT Tabella2.Categoria, Val(DSum("Quantità", "Tabella1", "Categoria=" &
Chr$(34) & [Categoria] & Chr$(34))) AS Totale, Val(DSum("Quantità",
"Tabella1", "Categoria=" & Chr$(34) & [Categoria] & Chr$(34) & " And Genere
= 'uomo' ")) AS TotaleUomini, Val(DSum("Quantità", "Tabella1", "Categoria="
& Chr$(34) & [Categoria] & Chr$(34) & " And Genere = 'donna' ")) AS
TotaleDonne
FROM Tabella2
ORDER BY Tabella2.Categoria;
> grazie Roberto, come al solito mi hai aperto nuove strade di access da
> studiare.
>
>
> Saluti
> Fabià
--



title: Query con problema DSUM

text:


tutto funziona benissimo a parte una cosa: quando non ci sono elementi
da sommare compare #Errore: come faccio ad evitarlo e far venire 0 ?
la cosa mi da noia quando faccio campi calcolati.
e se volessi usare la tua prima proposta di codice (molto più pulita)?
come faccio ad indicare i criteri donna e uomo ? (uso Where?...sto
imparando:-)
grazie ancora
Saluti
Fabià


title: Query con problema DSUM

text:
"fabià" <fabi...@SPAMyahoo.com> ha scritto nel messaggio
news:3dd3fa52....@powernews.inwind.it...
[CUT]
> >
> tutto funziona benissimo a parte una cosa: quando non ci sono elementi
> da sommare compare #Errore: come faccio ad evitarlo e far venire 0 ?
> la cosa mi da noia quando faccio campi calcolati.
Prova con:
SELECT Tabella2.Categoria, IIf(DCount("*","Tabella1","Categoria=" & Chr$(34)
& [Categoria] & Chr$(34))<>0,Val(DSum("Quantità", "Tabella1", "Categoria=" &
Chr$(34) & [Categoria] & Chr$(34))), 0) AS Totale, IIf(DCount("*",
"Tabella1", "Categoria=" & Chr$(34) & [Categoria] & Chr$(34) & " And Genere
= 'uomo' ")<>0, Val(DSum("Quantità", "Tabella1", "Categoria=" & Chr$(34) &
[Categoria] & Chr$(34) & " And Genere = 'uomo' ")), 0) AS TotaleUomini,
[Totale] - [TotaleUomini] AS TotaleDonne
FROM Tabella2
ORDER BY Tabella2.Categoria;
> e se volessi usare la tua prima proposta di codice (molto più pulita)?
> come faccio ad indicare i criteri donna e uomo ? (uso Where?...sto
> imparando:-)
Se vuoi tutti e tre i totali su un'unica riga, non saprei indicarti il
codice SQL di una query di raggruppamento che lo ottenga.
>
> grazie ancora



title: A capo nelle caselle di testo dei Report

author: Salvatore

text:
Forse qualcuno ha già risposto a questa domanda, ma vorrei ugualmnte sapere
se esiste un modo per far andare a capo a comando una riga di una casella di
testo, in un report o una maschera.
Ho provato con chr(13) ma non va...
Grazie,
Salvatore


text:
"Salvatore" <
sal...@tiscalinet.it
> ha scritto nel messaggio
news:9pd6vs$ip8$1...@pegasus.tiscalinet.it...

Prova con vbCrLf (vedi help).
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:8Aqu7.10337$0Y2.2...@news.infostrada.it...

Ho provato ma funziona solo col visual basic.
Se lo utilizzo nei report lo scambia per il nome di un campo.


text:
"Salvatore" <
sal...@tiscalinet.it
> ha scritto nel messaggio
news:9pdese$bib$1...@lacerta.tiscalinet.it...

Scusami, ma se non lo usi in una riga di codice VBA di una routine del
report, dove pensi di scriverla quella costante figurativa?



text:
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:Okru7.10830$0Y2.2...@news.infostrada.it...
>
[CUT]
> > Ho provato ma funziona solo col visual basic.
> > Se lo utilizzo nei report lo scambia per il nome di un campo.
> >
>
> Scusami, ma se non lo usi in una riga di codice VBA di una routine del
> report, dove pensi di scriverla quella costante figurativa?
>
> --
> Roberto
>
So che ripensarci è brutto segno, ma per curiosità, dove lo scrivevi
chr(13).
Comunque se stai digitando un testo in una casella di testo di una maschera,
per andare a capo devi pigiare contemporaneamente i tasti Ctrl+Invio.



author: Luca

text:
Se ho capito il problema :a comando non lo so ma nelle proprietà della
casella di testo devi impostare espandibile a sì
"Salvatore" <
sal...@tiscalinet.it
> ha scritto nel messaggio
news:9pd6vs$ip8$1...@pegasus.tiscalinet.it...



author: Sib dal portatile

text:
"Salvatore" <
sal...@tiscalinet.it
> ha scritto nel messaggio
news:9pd6vs$ip8$1...@pegasus.tiscalinet.it...

In una maschera devi impostare la proprieta' "funzione tasto invio" a "Nuova
riga del campo", in un report non devi fare niente.
Inserire il chr(13) non e' sufficiente per andare a capo, devi aggiungere
anche il LineFeed chr(10).
Se imposti nuova riga, comunque, basta digitare invio per inserire un a capo
nel testo.
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:
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:wsru7.10889$0Y2.2...@news.infostrada.it...

Ho risolto il problema usando Vba ed utilizzando una funzione.
Io volevo ottenere sulle caselle di testo due righe distinte nella stessa
casella a prescindere dalla loro lunghezza.
Per esempio volevo il cognome sulla prima riga ed il cognome sulla seconda.
Inizialmente ho provato scrivendo nell'origine del controllo la stringa
=[cognome]&chr(13)&[nome], ma come ho già detto, l'unico risultato è un
rettangolino al posto del chr(13).
L'uso di Ctrl+Invio può essere utile solo su una etichetta nella quale il
testo è già predefinito.
Ciao, Salvatore


author: Roberto dal portatile

text:
"Salvatore" <
sal...@tiscalinet.it
> ha scritto nel messaggio
news:9pfdir$5un$1...@pegasus.tiscalinet.it...

Se vuoi metterlo nell'origine controllo, basta che nell'origine controllo
scrivi:
=[cognome] & Chr(13) & Chr(10) & [nome]
Scusami, ma dal tuo primo messaggio ciò non era chiaro.



text:
"Roberto dal portatile" <
r.ma...@repubblica.it
> ha scritto nel messaggio
news:9pfiio$1dj8$1...@stargate1.inet.it...

Grazie, funziona.
Ciao


title: Apertura nuovo documento Office

author: Sandrobi

text:
Come posso aprire da riga di comando (ad esempio con una Shell) un
nuovo documento di Office (Word, Excel o Frontpage) non ancora creato?
In pratica devo mettere su un collegamento, dopo il percorso di Winword,
Excel o Frontpage il nome del documento che potrebbe essere nuovo e in
questo caso segnala errore.
Grazie
Sandrobi


title: Querydef basata su querydef

author: Marco Tognon

text:
Salve a tutti!
In Access 97, vorrei riuscire, da VB, a creare una querydef che
selezioni i dati da un'altra querydef appena creata.
Come si fa?
Grazie mille.
Marco


title: Querydef basata su querydef

author: Antonio Ganci

text:

SELECT ... FROM [Nome Query] WHERE ....
La clausola FROM in Access può far riferimento anche ad un altra Query non
solo a Tabelle.
Antonio.


title: Querydef basata su querydef

text:


No, scusa, forse mi sono spiegato male. Che nella from io possa
mettere anche le query lo sapevo, quello che non riesco a fare è una
cosa del genere:
    Set DBMosaici = CurrentDb()
    Set qryEliminazioni = DBMosaici.QueryDefs("SelezioneEliminazioni")
    Set rstElencoRecord = qryEliminazioni.OpenRecordset(dbOpenDynaset)
    rstElencoRecord.MoveLast
    NumeroEdifici = rstElencoRecord.RecordCount
    Set qryElencoEdifici = DBMosaici.CreateQueryDef("", "SELECT
[IdMosaico] FROM [qryEliminazioni] GROUP BY [IdMosaico]")
    Set rstElencoElementi =
qryElencoEdifici.OpenRecordset(dbOpenDynaset)
Quando arriva alla riga nella quale crea la query temporanea e la
mette in qryElencoEdifici, mi dice che "la tabella o query
[qryEliminazioni] non esiste" etc.
Grazie dell'aiuto.
Marco


title: Querydef basata su querydef

text:
Marco Tognon wrote:
> No, scusa, forse mi sono spiegato male. Che nella from io possa
> mettere anche le query lo sapevo, quello che non riesco a fare č una
> cosa del genere:
>
>     Set DBMosaici = CurrentDb()
>     Set qryEliminazioni = DBMosaici.QueryDefs("SelezioneEliminazioni")
>     Set rstElencoRecord = qryEliminazioni.OpenRecordset(dbOpenDynaset)
>     rstElencoRecord.MoveLast
>     NumeroEdifici = rstElencoRecord.RecordCount
>     Set qryElencoEdifici = DBMosaici.CreateQueryDef("", "SELECT
> [IdMosaico] FROM [qryEliminazioni] GROUP BY [IdMosaico]")
>     Set rstElencoElementi =
> qryElencoEdifici.OpenRecordset(dbOpenDynaset)
>
> Quando arriva alla riga nella quale crea la query temporanea e la
> mette in qryElencoEdifici, mi dice che "la tabella o query
> [qryEliminazioni] non esiste" etc.
>
> Grazie dell'aiuto.
> Marco
Prova cosě:
Set qryElencoEdifici = DBMosaici.CreateQueryDef("", "SELECT
 [IdMosaico] FROM [SelezioneEliminazioni] GROUP BY [IdMosaico]")
Non capisco perchč vuoi usare qryEliminazioni.
Ciao, Antonio.


title: Querydef basata su querydef

text:
On Thu, 12 Dec 2002 16:26:02 +0100, "Antonio Ganci"
<
a.ganciNO...@megattera.it
> wrote:
>Marco Tognon wrote:
>
>> No, scusa, forse mi sono spiegato male. Che nella from io possa
>> mettere anche le query lo sapevo, quello che non riesco a fare è una
>> cosa del genere:
>>
>>     Set DBMosaici = CurrentDb()
>>     Set qryEliminazioni = DBMosaici.QueryDefs("SelezioneEliminazioni")
>>     Set rstElencoRecord = qryEliminazioni.OpenRecordset(dbOpenDynaset)
>>     rstElencoRecord.MoveLast
>>     NumeroEdifici = rstElencoRecord.RecordCount
>>     Set qryElencoEdifici = DBMosaici.CreateQueryDef("", "SELECT
>> [IdMosaico] FROM [qryEliminazioni] GROUP BY [IdMosaico]")
>>     Set rstElencoElementi =
>> qryElencoEdifici.OpenRecordset(dbOpenDynaset)
>>
>> Quando arriva alla riga nella quale crea la query temporanea e la
>> mette in qryElencoEdifici, mi dice che "la tabella o query
>> [qryEliminazioni] non esiste" etc.
>>
>> Grazie dell'aiuto.
>> Marco
>
>Prova così:
>
>Set qryElencoEdifici = DBMosaici.CreateQueryDef("", "SELECT
> [IdMosaico] FROM [SelezioneEliminazioni] GROUP BY [IdMosaico]")
>
>Non capisco perchè vuoi usare qryEliminazioni.
>Ciao, Antonio.
>
>
Il fatto è che "SelezioneEliminazioni" la uso solo ora per fare delle
prove.
Il concetto è questo: devo fare una query che cambia a seconda della
maschera in cui l'utente si trova, con condizioni WHERE o Parametri
sempre dipendenti dalla situazione.
Devo poi lanciare altre query usando come sorgente dati la query di
cui sopra.
Poiché il tutto è molto poco determinabile a priori, vorrei gestire il
tutto via codice, e creare le query adatte all'occorrenza, con i
criteri adatti. Vorrei anche, chiaramente, trovare la strada per non
dovere creare tutte le query possibili (sarebbero parecchie) per poi
richiamarle alla bisogna.
Ma non riesco a creare una querydef basata su un'altra querydef.
Tantomeno se sono temporanee.
Grazie.
Marco.


title: Querydef basata su querydef

text:
"Marco Tognon" <
marco_...@infinito.it
> ha scritto nel messaggio
news:d9D4PSHvO9=uRKa93Zd...@4ax.com...

Creati una query qualsiasi chiamata Query1.
Da codice modifica il suo codice SQL, a tuo piacimento e poi richiama sempre
e comunque Query1.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Querydef basata su querydef

text:
On Thu, 12 Dec 2002 20:55:17 GMT, "Roberto da casa"
<
r.ma...@libero.it
> wrote:
>> Il concetto è questo: devo fare una query che cambia a seconda della
>> maschera in cui l'utente si trova, con condizioni WHERE o Parametri
>> sempre dipendenti dalla situazione.
>> Devo poi lanciare altre query usando come sorgente dati la query di
>> cui sopra.
>> Poiché il tutto è molto poco determinabile a priori, vorrei gestire il
>> tutto via codice, e creare le query adatte all'occorrenza, con i
>> criteri adatti. Vorrei anche, chiaramente, trovare la strada per non
>> dovere creare tutte le query possibili (sarebbero parecchie) per poi
>> richiamarle alla bisogna.
>>
>> Ma non riesco a creare una querydef basata su un'altra querydef.
>> Tantomeno se sono temporanee.
>>
>> Grazie.
>> Marco.
>
>Creati una query qualsiasi chiamata Query1.
>Da codice modifica il suo codice SQL, a tuo piacimento e poi richiama sempre
>e comunque Query1.
Tanto per la precisione: questa tua risposta significa che in Access
97 non è possibile utilizzare una querydef come sorgente dati per
un'altra querydef, oppure è solo un tuo consiglio su come procedere?
Perché io, come scrivevo sopra, devo eseguire Query1 a seconda di
certe condizioni, e tenermela stretta perchè mi serve. E mi serve sia
da sola, sia come sorgente per ricavare altri dati tramite varie
Query2, Query3, etc..
Se, come dici tu, uso sempre Query1 e ne cambio la stringa SQL,
anzitutto perdo i dati di cui ho bisogno, e poi le successive Query
dovranno essere eseguite ognuna sull'insieme dati iniziale, molto più
grande di quello che Query1 avrebbe creato. Quindi + lento.
Che ne dici?
Grazie.
Marco


title: Querydef basata su querydef

text:
"Marco Tognon" <
marco_...@infinito.it
> ha scritto nel messaggio
news:UBn5PdYvhu2FfB...@4ax.com...
> On Thu, 12 Dec 2002 20:55:17 GMT, "Roberto da casa"
> <
r.ma...@libero.it
> wrote:
>
> >> Il concetto è questo: devo fare una query che cambia a seconda della
> >> maschera in cui l'utente si trova, con condizioni WHERE o Parametri
> >> sempre dipendenti dalla situazione.
> >> Devo poi lanciare altre query usando come sorgente dati la query di
> >> cui sopra.
> >> Poiché il tutto è molto poco determinabile a priori, vorrei gestire il
> >> tutto via codice, e creare le query adatte all'occorrenza, con i
> >> criteri adatti. Vorrei anche, chiaramente, trovare la strada per non
> >> dovere creare tutte le query possibili (sarebbero parecchie) per poi
> >> richiamarle alla bisogna.
> >>
> >> Ma non riesco a creare una querydef basata su un'altra querydef.
> >> Tantomeno se sono temporanee.
> >>
> >> Grazie.
> >> Marco.
> >
> >Creati una query qualsiasi chiamata Query1.
> >Da codice modifica il suo codice SQL, a tuo piacimento e poi richiama
sempre
> >e comunque Query1.
>
> Tanto per la precisione: questa tua risposta significa che in Access
> 97 non è possibile utilizzare una querydef come sorgente dati per
> un'altra querydef, oppure è solo un tuo consiglio su come procedere?
>
La seconda.
> Perché io, come scrivevo sopra, devo eseguire Query1 a seconda di
> certe condizioni, e tenermela stretta perchè mi serve. E mi serve sia
> da sola, sia come sorgente per ricavare altri dati tramite varie
> Query2, Query3, etc..
> Se, come dici tu, uso sempre Query1 e ne cambio la stringa SQL,
> anzitutto perdo i dati di cui ho bisogno, e poi le successive Query
> dovranno essere eseguite ognuna sull'insieme dati iniziale, molto più
> grande di quello che Query1 avrebbe creato. Quindi + lento.
>
Quello che ti suggerivo era di usare la tecnica QBF (Query By Form) che ti
permette di memorizzare una stringa SQL in una query già memorizzata nel tuo
database; insomma è un modo alternativo per gestire recordset basati su
stringhe SQL.
Io ho ipotizzato di usare una sola query e modificarla "on the fly", ma
nessuno ti vieta di usare e modificare quante query ritieni opportuno.
> Che ne dici?
Io ti ho dato una dritta; ora valuta tu quanto risolva il tuo problema.
> Grazie.
> Marco



title: Querydef basata su querydef

text:
On Fri, 13 Dec 2002 09:37:33 GMT, "Roberto da casa"
<
r.ma...@libero.it
> wrote:
>
>"Marco Tognon" <
marco_...@infinito.it
> ha scritto nel messaggio
>news:UBn5PdYvhu2FfB...@4ax.com...
>> On Thu, 12 Dec 2002 20:55:17 GMT, "Roberto da casa"
>> <
r.ma...@libero.it
> wrote:
>>
>> Tanto per la precisione: questa tua risposta significa che in Access
>> 97 non è possibile utilizzare una querydef come sorgente dati per
>> un'altra querydef, oppure è solo un tuo consiglio su come procedere?
>>
>
>La seconda.
E, quindi, la prima come si fa?
Non è che insisto, è solo l'oggetto della mia domanda originale.
Grazie
Marco.


title: Querydef basata su querydef

text:
"Marco Tognon" <
marco_...@infinito.it
> ha scritto nel messaggio
news:j=f5PQltl=gYxqWoexk...@4ax.com...

Ammesso e non concesso che si possa fare, non saprei come.
> Grazie
> Marco.



title: Querydef basata su querydef

author: Karl Donaubauer

text:
Marco Tognon ha scritto:...
> Tanto per la precisione: questa tua risposta significa che in Access
> 97 non è possibile utilizzare una querydef come sorgente dati per
> un'altra querydef, oppure è solo un tuo consiglio su come procedere?
>
> Perché io, come scrivevo sopra, devo eseguire Query1 a seconda di
> certe condizioni, e tenermela stretta perchè mi serve. E mi serve sia
> da sola, sia come sorgente per ricavare altri dati tramite varie
> Query2, Query3, etc..
> Se, come dici tu, uso sempre Query1 e ne cambio la stringa SQL,
> anzitutto perdo i dati di cui ho bisogno, e poi le successive Query
> dovranno essere eseguite ognuna sull'insieme dati iniziale, molto più
> grande di quello che Query1 avrebbe creato. Quindi + lento.
Non è possibile di usare una querydef non salvata (=senza nome)
in una seconda querydef. La clausola FROM di una query (=querydef)
ha bisogno di un nome di una tabella/query o di un'istruzione SQL.
Per questo in genere è meglio di creare tutta l'istruzione SQL di nuovo
in ogni situazione.
Si puo fare una cosa "successiva" con dei recordsets per cui
esiste la proprietà Filter. Ma come dice anche la guida in linea
per Filter: Normalmente SQL è più performante.
Se vuoi assolutamente prendere 2 Querydef non salvate:
Puoi solo usare l'istruzione SOL della prima querydef p.e. in un
SubSelect della seconda querydef.
La sintassi per un tale SubSelect in A97 è un po strano. Esempio:
Set qdf1 = db.CreateQueryDef("", "SELECT * FROM tabella")
Set qdf2 = db.CreateQueryDef("", "SELECT id FROM [" & qdf1.SQL & "]. AS pippo
GROUP BY id")
Ma spesso una tale cosa è più lenta di una query complettamente
nuova senza subselect. Dipende un po della complessità.
--
HTH
Karl
*********
Access-FAQ (tedesco):
http://www.donkarl.com


title: Querydef basata su querydef

text:
Marco Tognon ha scritto:
> ...questa tua risposta significa che in Access
> 97 non è possibile utilizzare una querydef come sorgente dati per
> un'altra querydef...
Non è possibile di usare una querydef non salvata e senza nome
in un'altra querydef. La clausola FROM ha bisogno di un nome di
una tabella/query o di un'istruzione SQL. Per questo in genere è
meglio di creare tutta l'istruzione SQL di nuovo in ogni situazione.
Si puo fare una cosa "successiva" con dei recordsets per cui
esiste la proprietà Filter. Vedi l'esempio nella guida in linea.
Ma come dice anche la guida normalmente SQL è più performante.
Se vuoi assolutamente prendere 2 querydef non salvate puoi solo
usare l'istruzione SOL della prima querydef p.e. in un SubSelect
della seconda querydef.
La sintassi per un tale SubSelect in A97 è un po strano. Esempio:
Set qdf1 = db.CreateQueryDef("", "SELECT * FROM tabella")
Set qdf2 = db.CreateQueryDef("", "SELECT id FROM [" & qdf1.SQL & "]. AS pippo
GROUP BY id")
Ma normalmente una tale cosa è più lenta di una query complettamente
nuova senza subselect.
--



title: Querydef basata su querydef

text:


Grazie mille Karl!
Risposta chiara ed esauriente.
Marco


title: Evento indesiderato in ADP A2000 su MSDE2000

author: Sib

text:
Ciao a tutti,
non riesco proprio a capire perche' succeda questo.
in pratica ho una maschera con interruttori e tutto funziona, se non che' se
sfrutto la proprieta' me.bookmark per individuare un record e poi cerco di
modificare l'interruttore si verifica l'evento afterupdate.
da precisare che in questo evento ho messo una msgbox di conferma con i
pulsanti Si', No e Annulla.
se premo annulla si verifica una seconda volta l'evento e ricompare la
richiesta di conferma
se premo nuoamente annulla tutto torna normale e posso completare tutte le
operazioni.
se per sbaglio in uno dei due casi premo si' o no access da un errore e si
chiude.
se prima di modificare l'interruttore modifico ad es un controllo e mando il
record in fase di modifica non si presenta nessun problema.
la cosa non dipende da un interruttore in particolare, ma da un qualsiaasi
interruttore
NB ovviamente gli interruttori sono legati a campi bit della tabella
sottostante.
Ho installato fino alla sp3 senza successo, non so piu' cosa modificare.
accetto qualsiasi suggerimento
Sib


text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
cut
per chi vuole riprodurre l'errore la cosa e' semplicissima:
create un adp e collegatelo a un db msde (o createne uno di prova)
create una maschera da una tabella che contenga campi bit
(l'autocomposizione va bene)
se usate l'autocomposizione evdrete che i campi bit vengono tradotti come
caselle di controllo
provate a inserire e modificare record a partire dalla casella di controllo,
tutto andra' bene.
con l'autocomposizione create una combo di ricerca
salvate la maschera (perche' ora vi faccio andare in crash access)
trovate un record col nuovo controllo di ricerca che avete creato
senza fare altre operazioni fate click sulla casella di controllo e...
...buon divertimento!!
Sib


author: Simone Calligaris

text:
"Sib" <

Ho provato senza incontrare problemi con la seguente configuraz. (il formato
del file è sempre il 2000)
Access 2000 SP-1
Access XP SP-2
Sql Server Dev Edition 7.0
Maschera con cambi "Bit" (check box associate), cerco un record, quindi
modifico il campo Bit su quel record o su altri record.
Non va in crash.
Sarà solo con Sql Server 2000?
Saluti.


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio

molto interessante.
ho verificato su diversi pc e su diversi database, sempre con file adp di
A2000 aperto con AXP cone MSDE 2000, va sempre in errore.
hai usato l'autocomposizione per la casella di ricerca (quella che usa la
proprieta' bookmark)?
hai premuto subito la casella di controllo dopo la ricerca? non e' che hai
iniziato a modificare prima altri controlli?
Sib


author: Giorgio Prx

text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:zMefb.160439$hE5.5...@news1.tin.it...

Ciao Sib
In passato ho avuto un problema analogo che si presentava eseguendo lo
spostamento tra i record tramite l'oggetto recordset del Form, infatti se
dalla finestra di debug esegui il comando Forms!TuoFrm.Recordset.movefirst e
fai click sul CheckBox otterrai lo stesso errore. Nel mio caso ho risolto
(in un primo momento) utilizzando il metodo docmd.RunCommand
acCmdRecordsGoToLast, poi ho deciso di abbandonare queste  tecniche di
Access che sono valide per piccoli MDB ma che ( a mio parere ) non hanno
senso in un sistema Client/server o con tabelle di grosse dimensioni.
(Le reti geografiche sono il futuro e sqlserver è lo strumento adatto)
Comunque come suggerimento potresti utilizzare il metodo FindRecord
dell'oggetto DoCmd.
Es..
-------------------------------------------
Private Sub CasellaCombinata_AfterUpdate()
    Me.CTR.Setfocus
    DoCmd.FindRecord Str(Nz(Me![CasellaCombinata], 0)), , False, , False
End Sub
------------------------------------------
( CTR ha come origine controllo il campo da ricercare)
A quanto pare non si può toccare il Recordset del Form.
Ciao Giorgio.


text:
"Giorgio Prx"
> Ciao Sib
> In passato ho avuto un problema analogo che si presentava eseguendo lo
> spostamento tra i record tramite l'oggetto recordset del Form, infatti se
> dalla finestra di debug esegui il comando Forms!TuoFrm.Recordset.movefirst
e
> fai click sul CheckBox otterrai lo stesso errore. Nel mio caso ho risolto
> (in un primo momento) utilizzando il metodo docmd.RunCommand
> acCmdRecordsGoToLast, poi ho deciso di abbandonare queste  tecniche di
> Access che sono valide per piccoli MDB ma che ( a mio parere )
Beh, Giorgio: senza dubbio a tuo parere.
A parere di altri la soluzione più razionale per gestire la concorrenza su
reti geografiche (senza esser costretti a creare interfacce simili ai
software di 25 anni fa) è ricorrere a servizi Terminal, Cytrix e affini.



text:
"Sib"
> > Access 2000 SP-1
> > Access XP SP-2
> >
> > Sql Server Dev Edition 7.0
> >
> > Maschera con cambi "Bit" (check box associate), cerco un record, quindi
> > modifico il campo Bit su quel record o su altri record.
> > Non va in crash.
> > Sarà solo con Sql Server 2000?
>
> molto interessante.
> ho verificato su diversi pc e su diversi database, sempre con file adp di
> A2000 aperto con AXP cone MSDE 2000, va sempre in errore.
> hai usato l'autocomposizione per la casella di ricerca (quella che usa la
> proprieta' bookmark)?
> hai premuto subito la casella di controllo dopo la ricerca? non e' che hai
> iniziato a modificare prima altri controlli?
Effettivamente ho fatto tutto come da tuo post precedente.
Vuoi darmi altre indicazioni?
Mi piacerebbe capire bene come si verifichi l'errore che descrivi.
Saluti.


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio
news:nPvfb.8418$vO5.2...@twister1.libero.it...
>
> Beh, Giorgio: senza dubbio a tuo parere.
Certamente, non volevo dare consigli ma solo una testimonianza :)))
Ciao Giorgio


text:
"Giorgio Prx" <
giorgio...@nospamtiscalinet.it
> ha scritto nel messaggio
news:blm571$4ht$1...@lacerta.tiscalinet.it...

Dimenticavo..
(senza esser costretti a creare interfacce simili aisoftware di 25 anni fa)
Le tecniche e le comodità di di Access sono riproducibili con stored
procedure scritte il linquaggio TSql su SqlServer, ovviamente bisogna
cambiare tutta la logica.
Ciao.


text:
"Giorgio Prx"
> Dimenticavo..
> (senza esser costretti a creare interfacce simili aisoftware di 25 anni
fa)
> Le tecniche e le comodità di di Access sono riproducibili con stored
> procedure scritte il linquaggio TSql su SqlServer, ovviamente bisogna
> cambiare tutta la logica.
Il discorso si complica...
E' vero che usando il TSQL puoi delegare molto al Server e restituire poco
(ma dipende dalle richieste dell'utente) al Client.
Tuttavia tante classiche comode _e assai gradite_ features che offre Access,
sono intrinsecamente pesanti e fondamentalmente incompatibili con qualunque
applicazione che lavori in remoto su linee ordinarie.
Parliamo di Combo a espansione, strutture Master/Detail, SubForms etc.
A questo punto, a meno che non si lavori per le assicurazione Generali o la
Fiat, tanto vale sfruttare i servizi Terminal senza rinunciare alle comodità
di cui sopra.
Sono opinioni per carità, però noto che molti noti produttori di gestionali,
imbrattano brochures e siti di tirate su "applicazioni web", "web services",
operatività Client-Server attraverso linee ADSL, etc.  ... però poi all'atto
pratico preferiscono sfruttare servizi Terminal.
E la cosa non mi stupisce considerando che la maggior parte dei software che
girano s'interfacciano ai Server di database con pure connessioni ODBC.
Saluti: Simone


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio

si verifica esattamente come descrivo.
se si usa la proprieta' bookmark per ritrovare un record, allora non si puo'
iniziare a modificare i dati della maschera a partire da un controllo
collegato a un campo bit.
si deve iniziare da un controllo legato, ad es, a un campo testo, allora
tutto va bene.
come ho detto in post precedenti, ho verificato che prima di andare in
errore si verifica l'evento before update, il quale se intercettato e
annullato evita che l'applicazione vada in errore.
Tra l'altro l'evento si verifica 2 volte e entrambe le volte l'evento va
annullato.
Sib


text:
"Sib"
> si verifica esattamente come descrivo.
> se si usa la proprieta' bookmark per ritrovare un record, allora non si
puo'
> iniziare a modificare i dati della maschera a partire da un controllo
> collegato a un campo bit.
> si deve iniziare da un controllo legato, ad es, a un campo testo, allora
> tutto va bene.
> come ho detto in post precedenti, ho verificato che prima di andare in
> errore si verifica l'evento before update, il quale se intercettato e
> annullato evita che l'applicazione vada in errore.
> Tra l'altro l'evento si verifica 2 volte e entrambe le volte l'evento va
> annullato.
Ho riprovato per filo e per segno _con la configurazione solita_ su una Form
con parecchie migliaia di records: nessun crash.
Tuttavia ho dovuto modificare il testo _pessimo_ dell'autocomposizione:
Dim rs As Object
 Set rs = Me.Recordset.Clone
 rs.Find "[ContMovim] = " & Str(Nz(Me![CasellaCombinata28], 0))
 If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Con tale codice si verifica una strana cosa: dopo aver effettuato la
ricerca, il primo click sulla check box va a vuoto!
Sostituendo con un più consono:
With  Me.RecordsetClone
       .Find "[ContMovim] = " & Str(Nz(Me![CasellaCombinata28], 0))
       If Not .EOF Then Me.Bookmark = .Bookmark
End With
... nessun problema.
Saluti: Simone


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio
> "Sib"
>
> > si verifica esattamente come descrivo.
> > se si usa la proprieta' bookmark per ritrovare un record, allora non si
puo'
> > iniziare a modificare i dati della maschera a partire da un controllo
> > collegato a un campo bit.
> > si deve iniziare da un controllo legato, ad es, a un campo testo, allora
> > tutto va bene.
> > come ho detto in post precedenti, ho verificato che prima di andare in
> > errore si verifica l'evento before update, il quale se intercettato e
> > annullato evita che l'applicazione vada in errore.
> > Tra l'altro l'evento si verifica 2 volte e entrambe le volte l'evento va
> > annullato.
>
>
> Ho riprovato per filo e per segno _con la configurazione solita_ su una
Form
> con parecchie migliaia di records: nessun crash.
>
> Tuttavia ho dovuto modificare il testo _pessimo_ dell'autocomposizione:
>
> Dim rs As Object
>
>  Set rs = Me.Recordset.Clone
>  rs.Find "[ContMovim] = " & Str(Nz(Me![CasellaCombinata28], 0))
>  If Not rs.EOF Then Me.Bookmark = rs.Bookmark
>
> Con tale codice si verifica una strana cosa: dopo aver effettuato la
> ricerca, il primo click sulla check box va a vuoto!
cut
stai usando sql/msde 2000?
comunque il fatto che vada a vuoto il primo click secondo me e' legato al
problema.
nel frattempo (CASO STRAORDINARIO) per la disperazione ho dato l'ok
all'invio delle informazioni sull'errore, staremo a vedere se mi arrivera'
una soluzione per il problema o i carabinieri per qualche programma piratato
;-)
Sib


text:
"Sib"
> stai usando sql/msde 2000?
E' no: come ti dicevo ho sperimentato la cosa con SqlSvr  7.0
> comunque il fatto che vada a vuoto il primo click secondo me e' legato al
> problema.
Anche secondo me, tuttavia modificando il codice dell'autocomposizione è
tutto ok.
> nel frattempo (CASO STRAORDINARIO) per la disperazione ho dato l'ok
> all'invio delle informazioni sull'errore, staremo a vedere se mi arrivera'
> una soluzione per il problema o i carabinieri per qualche programma
piratato
> ;-)
Abbi fede!
Ciao: Simone


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio
> "Sib"
>
> > stai usando sql/msde 2000?
>
> E' no: come ti dicevo ho sperimentato la cosa con SqlSvr  7.0
>
> > comunque il fatto che vada a vuoto il primo click secondo me e' legato
al
> > problema.
>
> Anche secondo me, tuttavia modificando il codice dell'autocomposizione è
> tutto ok.
Simone, la tua soluzione mi ha dato la giusta via per superare questo bug.
io avevo usato nel mio codice questa istruzione:
With Me.recordset.clone
e dava quel problema, invece usando:
With Me.recordsetclone
tutto fila liscio.
resto comunque molto perplesso per l'inconveniente.
Ciao e grazie
Sib


text:
"Sib"
> Simone, la tua soluzione mi ha dato la giusta via per superare questo bug.
> io avevo usato nel mio codice questa istruzione:
>
> With Me.recordset.clone
>
> e dava quel problema, invece usando:
>
> With Me.recordsetclone
>
> tutto fila liscio.
> resto comunque molto perplesso per l'inconveniente.
>
> Ciao e grazie
Mi fa piacere per la raggiunta soluzione :-)
Dal canto mio sono sorpreso più che altro della rozzezza
dell'autocomposizione
realizzata da M$:
Dim Rs as object   ----  *warning*:  scelta di un tipo di dati poco
specifico
set Rs=me.Recordset.Clone  -----  Che ci fa il puntino? Mai visto prima!
*warning* -----  La variabile recordset non viene "uccisa" alla fine della
routine.
In altre parole: tutto in antitesi con quanto consigliato su Help,
manualistica, KB.
Ma secondo te ci sono o ci fanno?
Saluti.


text:
"Simone Calligaris" <
simo...@libero.it
> ha scritto nel messaggio
> "Sib"
cut
> > Ciao e grazie
>
> Mi fa piacere per la raggiunta soluzione :-)
> Dal canto mio sono sorpreso più che altro della rozzezza
> dell'autocomposizione
> realizzata da M$:
>
> Dim Rs as object   ----  *warning*:  scelta di un tipo di dati poco
> specifico
>
> set Rs=me.Recordset.Clone  -----  Che ci fa il puntino? Mai visto prima!
secondo me vorrebbe essere il nuovo modo di far riferimento all'oggetto
clone del recordset, funzionasse almeno...
> *warning* -----  La variabile recordset non viene "uccisa" alla fine della
> routine.
>
>
> In altre parole: tutto in antitesi con quanto consigliato su Help,
> manualistica, KB.
> Ma secondo te ci sono o ci fanno?
Secondo me "ci sono".
Ciao
Sib


title: totali in fondo a report

text:
ho un campo totale di tipo euro che vorrei visualizzare se è l'ultima pagina
del report e nascondere se è una delle pagine precedenti all'aultima
ho provato cosi ma pare che me.pages valga sempre zero (0)
qualcuno sa dirmi cosa sbaglio?
    If Me.Page = Me.Pages Then
        campo.visible=true
    else
        campo.visible=false
    end if