title: query con maschere popup

text:
"Daniela" <
danielapi...@libero.it
> ha scritto nel messaggio
news:USbc7.19841$1c2.2...@news.infostrada.it...
> Il problema è semplicemente che non so farlo da sola.
> Se voglio i contatti per l'immobile PIPPO, devo creare una query ad hoc.
> Vorrei, invece che sia la query a chiedermi di quale immobile deve
> restituirmi i contatti, evitando, quindi, di creare una query per ciascun
> immobile.
> Spero di essere riuscita a farmi capire.
>
> Grazie per la tempestività.
>
> Daniela
Sì ti fai capire ma non dici se ci hai provato o no, quali tabelle/campi
devi utilizzare. Per esempio non so se hai una tabella con gli immobili, una
tabella con l'anagrafica dei contatti e una tabella "contatti" che indica
per ogni immobile quali contatti ci sono stati.
Insomma l'aiuto lo puoi avere ma devi descrivere meglio la situazione.
Ciao.


title: query con maschere popup

author: Daniela

text:
"Sergio MAZZA" <
sergi...@tiscalinet.it
> ha scritto nel messaggio
news:9kri2f$3q5$1...@canarie.caspur.it...
>
> Sě ti fai capire ma non dici se ci hai provato o no, quali tabelle/campi
> devi utilizzare. Per esempio non so se hai una tabella con gli immobili,
una
> tabella con l'anagrafica dei contatti e una tabella "contatti" che indica
> per ogni immobile quali contatti ci sono stati.
> Insomma l'aiuto lo puoi avere ma devi descrivere meglio la situazione.
>
> Ciao.
Hai ragione.
Ho le seguenti tabelle: [Immobili] e [Contatti].
Nella prima sono inserite le specifiche di ciascun immobile, nella seconda
tutti i contatti avuti per tutti gli immobili.
Le ho relazionate uno (tab. immobili) a molti (tab. contatti).
Per sapere quanti contatti ho avuto per un dato immobile, l'unico metodo che
conosco č creare una query, ma vorrei evitare di fare ogni volta l'intera
procedura.
Daniela


title: query con maschere popup

author: Sergio MAZZA

text:
"Daniela" <
danielapi...@libero.it
> ha scritto nel messaggio
news:hqcc7.19971$1c2.2...@news.infostrada.it...
>
> Hai ragione.
>
> Ho le seguenti tabelle: [Immobili] e [Contatti].
> Nella prima sono inserite le specifiche di ciascun immobile, nella seconda
> tutti i contatti avuti per tutti gli immobili.
> Le ho relazionate uno (tab. immobili) a molti (tab. contatti).
> Per sapere quanti contatti ho avuto per un dato immobile, l'unico metodo
che
> conosco è creare una query, ma vorrei evitare di fare ogni volta l'intera
> procedura.
>
> Daniela
>
Di query ne fai una sola che ti restituisce tutti i record; poi crei il
report. Sulla maschera ti crei una casella di riepilogo con una query che
legge l'id dell'immobile e la descrizione; ti crei un bottone che
nell'evento "su clic" ha questo codice:
Es.
'---------
Docmd.OpenReport "ContattiImmobile", acViewPreview, , "IdImmobile = " &
Me!NomeCasellaDiRiepilogo
'---------
Io ho preso per buono il fatto che nella tabella degli Immobili hai un campo
"id" che identifica l'immobile e che è replicato nella tabella Contatti...
Ciao.


title: Gif animate

author: Maurizio

text:
Ho letto con molto interesse la risposta di Top Gun circa la possibilità di
far funzionare le gif animate in una maschera di access.
Premetto che non ho mai utilizzato i controlli ActiveX e quindi pongo la
seguente domanda: dopo aver registrato il controllo ActiveX sul mio pc, se
utilizzo il   programma su altro computer immagino che l'immagine rimanga
statica.
Se sì come fare?
Grazie.


title: Gif animate

author: TopGun

text:
On Sat, 11 Mar 2000 21:44:58 +0100, "Maurizio" <
mauri...@mail2.crown-net.com
>
wrote:

Devi registrare il tuo OCX anche sull'altro computer.
Ciao,
Marco "TopGun"


title: query parametrica con variabile

author: pfm

text:
salve

ho una query con un valore parametrico

e' possibile eseguire la query e anziche' digitare il paramentro prendere il valore di una variabile pubblica o quello proveniente da una textBox?

Grazie


title: query parametrica con variabile

author: Karl Donaubauer

text:
Ciao,

pfm:
>
> ho una query con un valore parametrico
>
> e' possibile eseguire la query e anziche' digitare il paramentro prendere il valore di una variabile pubblica o quello proveniente da una textBox?

Non sono sicuro di capire il problema.

Certo puoi cambiare un parametro tipo [MioParametro] in un riferimento
ad un controllo in una maschera come: Forms!MiaMaschera!MiaCasella

Se vuoi usare una variabile pubblica leggi
http://www.donkarl.com/it?FAQ3.15
.

In alternativa se usi Access >=2007 potresti anche usare direttamente
una TempVar:
http://www.utteraccess.com/wiki/index.php/TempVars

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

Access Lobby:
http://www.AccessDevelopers.org


title: Controllo DefaultValue in apertura MASCHERA

author: psq

text:
Salve
Eccovi il quesito:
maschera [immissione] con relativa sottomaschera [IMMISSIONES]
Su Evento apertura maschera della maschera principale
ho immesso il seguente codice
Me.[IMMISSIONES]![Data1].DefaultValue = Format("#" & Forms![datapres]![Dat]
& "#", "ddmmyy")
ma memorizza la data nel formato "mmggaaaa"
come posso convertirla nel formato europeo
grazie


author: Francesco Burgio

text:


prova scrivendo "mmddyy" al posto di "ddmmyy"
non garantisco il funzionamento!
ciao
atxkors


text:
"Francesco Burgio" <
francesc...@fastwebnet.it
> ha scritto nel messaggio
news:ai1fk1535unbb3n6j...@4ax.com...

niente non funge...
altre soluzioni..??


title: Impostare parametri di relink tabelle da file di testo

author: Tom

text:
Ciao a tutti,
ho scaricato il seguente esmpio dal SC per fare il relink delle tabelle di
un gestionale da me creato e che ho distribuito con il runtime di access
2003:
Sub CollegaTabelle()
On Error GoTo Esci
  Dim Catalogo As New ADOX.Catalog
  Dim Tabella As ADOX.Table
  Dim Prop As ADOX.Property
  Dim Dir As String
  Dim Dir1 As String
  Catalogo.ActiveConnection = CurrentProject.Connection
  Dir = "\\Server\Programmi\Progetto\Progetto.BE.mdb"
  Dir = Replace(Dir, "Progetto.mdb", "Progetto_BE.mdb")
  Dir1 = "\\Olidata\Programmi\Progetto\ArchiviRM.mdb"
  Dir1 = Replace(Dir1, "Progetto.mdb", "ArchiviRM.mdb")
  Dir2 = "\\Olidata\Programmi\ProgettoStoricoRM.mdb"
  Dir2 = Replace(Dir2, "Progetto.mdb", "StoricoRM.mdb")
 For Each Tabella In Catalogo.Tables
     If Tabella.Name = "ArchivioSchede" Then
           Set Prop = Tabella.Properties("Jet OLEDB:Link Datasource")
      Prop.Value = Dir1
      ElseIf Tabella.Name = "ArchivioStorico" Then
           Set Prop = Tabella.Properties("Jet OLEDB:Link Datasource")
      Prop.Value = Dir2
      Else
      If Tabella.Type = "LINK" Then
      Set Prop = Tabella.Properties("Jet OLEDB:Link Datasource")
      Prop.Value = Dir
    End If
    End If
  Next Tabella
  Set Catalogo = Nothing
DoCmd.OpenForm "Link", acNormal
Exit Sub
Exit_Esci:
    Exit Sub
Esci:
    MsgBox Err.Description
    Resume Exit_Esci
End Sub
il tutto funziona perfettamente, ma il mio problema sta nel fatto che per
motivi aziendali gli archivi a cui io mi collego periodicamente vengono
spostati di server, quindi come ovvio il database non effettua più il
relink. La domanda è: esiste la possibilità di impostare tramite un file di
testo i percorsi di cui sopra nel caso cambia il server?
E se si come?
Ciao Tommy


author: ALESSANDRO Baraldi

text:
"Tom" <
ar...@libero.it
> ha scritto nel messaggio
news:Gd2Ud.52401$lB4.1...@twister1.libero.it...

Stesso problema che ho io...!
Uso un File INI, e salvo varie Sezioni nelle quali scrivo e leggo il
percorso.
Questo scrive e legge da un file INI, metti tutto in un Modulo:
Option Compare Database
Option Explicit
' DLL declarations
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As
String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
'// Functions
Function GetFromINI(sSection As String, sKey As String, sDefault As String,
sIniFile As String)
    Dim sBuffer As String, lRet As Long
    ' Fill String with 255 spaces
    sBuffer = String$(255, 0)
    ' Call DLL
    lRet = GetPrivateProfileString(sSection, sKey, "", sBuffer,
Len(sBuffer), sIniFile)
    If lRet = 0 Then
        ' DLL failed, save default
        If sDefault <> "" Then AddToINI sSection, sKey, sDefault, sIniFile
        GetFromINI = sDefault
    Else
        ' DLL successful
        ' return string
        GetFromINI = Left(sBuffer, InStr(sBuffer, Chr(0)) - 1)
    End If
End Function
'// Returns True if successful. If section does not
'// exist it creates it.
Function AddToINI(sSection As String, sKey As String, sValue As String,
sIniFile As String) As Boolean
    Dim lRet As Long
    ' Call DLL
    lRet = WritePrivateProfileString(sSection, sKey, sValue, sIniFile)
    AddToINI = (lRet)
End Function
Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------


text:
"ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel messaggio
news:4220b446$0$6308$5fc...@news.tiscali.it...

Scusa ma non so come impostare il file .ini, considerando anche il fatto che
come hai visto nel mio esempio i database a cui mi collego sono più di uno.
Saresti così gentile da abbozzarmi un esempio?
Grazie 1000
Ciao Tommy


text:
[CUT]
> >
> Scusa ma non so come impostare il file .ini, considerando anche il fatto
che
> come hai visto nel mio esempio i database a cui mi collego sono piů di
uno.
> Saresti cosě gentile da abbozzarmi un esempio?
> Grazie 1000
> Ciao Tommy
>
>
Per impostarlo ti faccio un Esempio:
Metti tutto il codice che ti ho passato in un Modulo, quindi dalla Finestra
Immediata
CTRL+G digita:
?AddToINI("DATABASE","DB1","\\Server\Programmi\Progetto\Progetto.BE.mdb","C:
\Link.Ini")
Viene creato un file in C:\ che contiene la Chiave DB1 con il valore che hai
passato.
Una volta create le chiavi prova a leggerle.



text:
"ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel messaggio
news:42219be2$0$32351$5fc...@news.tiscali.it...
> [CUT]
>> >
>> Scusa ma non so come impostare il file .ini, considerando anche il fatto
> che
>> come hai visto nel mio esempio i database a cui mi collego sono piů di
> uno.
>> Saresti cosě gentile da abbozzarmi un esempio?
>> Grazie 1000
>> Ciao Tommy
>>
>>
>
>
> Per impostarlo ti faccio un Esempio:
> Metti tutto il codice che ti ho passato in un Modulo, quindi dalla
> Finestra
> Immediata
> CTRL+G digita:
>
> ?AddToINI("DATABASE","DB1","\\Server\Programmi\Progetto\Progetto.BE.mdb","C:
> \Link.Ini")
>
> Viene creato un file in C:\ che contiene la Chiave DB1 con il valore che
> hai
> passato.
> Una volta create le chiavi prova a leggerle.
>
> Ciao
>
e.. una parola...
ho provato ad eseguire il codice di cui sopra ed č tutto OK, mi sono creato
tutti i link dei database, a questo punto ho il file .ini, che me ne faccio?
come faccio a leggerlo, i miei dubbi  si sono moltiplicati N elevato
all'infinito..
Facendo sempre riferimento al codice con cui io mi collego i database,
l'unico modo trovato che mi funzioni con il runtime, a questo punto dove
vado ad impostare la lettura del file .ini? devo cambiare il codice con cui
collegavo Dir, Dir1 eccc? e se si come? la funzione "GetFromINI" dove la
devo inserire?
Scusami per le molteplici domande, ma come avrai ormai capito sono un po OT
con il codice, se vorrai darmi un'ennesima mano, te ne sarei veramente
garto.
Ciao Tommy


title: Riposto perche' non vedo - casella combinata

author: Giorgio

text:
Ho un report dove in un controllo ho inserito la seguente istruzione:
=IIf(IsNull(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]!LISTA_AGENTE);"TUTTI";(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]LISTA_AGENTE))
Nella query collegata alla casella combinata della maschera ho il codice
agente che è la prima colonna e il nome agente nella seconda, io vorrei
visualizzare la seconda colonna
Ho provato ad inserire questo
=IIf(IsNull(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]!LISTA_AGENTE);"TUTTI";(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]!LISTA_AGENTE.Column(2)))
ma non mi visualizza la seconda colonna.
Grazie per l'aiuto
Ciao
Giorgio


author: Roberto da casa

text:
"Giorgio" <
gior...@libero.it
> ha scritto nel messaggio
news:UJfFa.75633$Ny5.2...@twister2.libero.it...

Con il generatore di espressioni non puoi far riferimento alla seconda
colonna di una casella combinata, ma solamento al suo valore.
Prova a scrivere nell'origine controllo della casella di testo non associata
del report:
 =IIf(IsNull(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]!LISTA_AGENTE);"TUTTI";(Maschere![SCHEDA FILTRO STAMPA FATTURATO
ART]LISTA_AGENTE))
ma imposta a 2 la colonna associata della casella combinata.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Ricavare percorso database BE

author: claudia M

text:
Ciao tutti
Vorrei sapere se è possibile ricavare il percorso del db _BE tramite VBA.
La necessità sorge perchè vorrei fare il backup dei dati che, chiaramente
risiedono del Database _BE
Grazie del vostro utilissimo aiuto.
Claudia
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


title: Ricavare percorso database BE

author: Alessandro Baraldi

text:
"claudia M" <
cla...@tin.it
> wrote in message
news:d2r85p$3di$
1...@news.newsland.it
> Ciao tutti
> Vorrei sapere se è possibile ricavare il percorso del db _BE tramite VBA.
> La necessità sorge perchè vorrei fare il backup dei dati che, chiaramente
> risiedono del Database _BE
> Grazie del vostro utilissimo aiuto.
> Claudia
Prova ad usare una di queste 2 Funzioni:
Function fLinkedTablePath1(strTableName As String) As String
    fLinkedTablePath1 = Mid(CurrentDb.TableDefs(strTable).Connect,
InStr(CurrentDb.TableDefs(strTableName).Connect, ";DATABASE=") + 10)
End Function
Function fLinkedTablePath2(strTableName As String) As String
    fLinkedTablePath2 = Mid(CurrentDb.TableDefs(strTable).Connect, 11)
End Function
Ovviamente chiamale passando il Nome della Tabella Linkata
della quale vuoi il Percorso del BE-
Ciao
@Alex
--
Posted via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: Ricavare percorso database BE

author: Claudia M

text:
Alessandro Baraldi ha scritto:






> Ciao
> @Alex
Accidenti, Alex
Sei un fulmine: gentilissimo, veloce e preciso.
Ti ringrazio: non ho provato ancora le funzioni, ma sono sicura che
funziona al 2000 x 1000.
GRAZIE!
Ciao Claudia



title: proprietà enable su un pulsante

author: Giacomo Rossi

text:
ciao
ho scritto il seguente codice per impostare la proprietà enable = true su un
pulsante :
private_sub prova_click( ) (per provare la routine ho usato un altro
pulsante)
if me.txt = pippo then
command.enabled = true
end if
end sub
dunque se io scrivo la parola pippo sulla casella di testo , premendo il
tasto prova, si abilitasse il pulsante command
ma putroppo così non funzion.
Qualcuno sa darmi qualche dritta?????


title: proprietà enable su un pulsante

author: yQy

text:
On Thu, 27 Mar 2003 22:55:20 GMT, "Giacomo Rossi" <
rogi...@tin.it
>
wrote:

potresti provare con
--------------------------------------
Private Sub pulsanteprova_click()
If Isnull(me.txtpippo) then
	me.command.enabled=false
	exit sub
else
	me.command.enabled=true
end if
End Sub
----------------------------------------
sto coso funziona cosi:
se la casella c'ha PIPPO allora il bottone command e' abilitato,
senno' no.
Spero ti sia di aiuto :)
Ciao


title: proprietà enable su un pulsante

author: Dinho

text:
> >ho scritto il seguente codice per impostare la proprietà enable = true su
un
> >pulsante :
> >
> >private_sub prova_click( ) (per provare la routine ho usato un altro
> >pulsante)
> >
> >if me.txt = pippo then
> >command.enabled = true
> >end if
> >end sub
> >
> >dunque se io scrivo la parola pippo sulla casella di testo , premendo il
> >tasto prova, si abilitasse il pulsante command
> >ma putroppo così non funzion.
> >Qualcuno sa darmi qualche dritta?????
>
Non ho capito bene....quell'istruzione IF ME.TXT = PIPPO...
L'hai scritta proprio così?
Intanto, la casella si chiama proprio 'txt' ?
Dovresti scrivere qualcosa del tipo..... IF ME.casella = "pippo" then
Ciao
Dinho


title: proprietà enable su un pulsante

text:
On Thu, 27 Mar 2003 22:55:20 GMT, "Giacomo Rossi" <
rogi...@tin.it
>
wrote:
>ciao
>
>ho scritto il seguente codice per impostare la proprietà enable = true su un
>pulsante :
>
>private_sub prova_click( ) (per provare la routine ho usato un altro
>pulsante)
>
>if me.txt = pippo then
>command.enabled = true
>end if
>end sub
>
riformulo :)
>dunque se io scrivo la parola pippo sulla casella di testo , premendo il
>tasto prova, si abilitasse il pulsante command
>ma putroppo così non funzion.
>Qualcuno sa darmi qualche dritta?????
>
------------------------------------------
Private Sub prova_OnClick()
if isnull(me.nomecaselladitesto) then
	me.nomepulsante.visible=false
else
	me.nomepulsante.visible=true
End if
End Sub
-------------------------------------------


title: proprietà enable su un pulsante

text:
"Giacomo Rossi" <
rogi...@tin.it
> ha scritto nel messaggio
news:sjLga.29418$i26.7...@news2.tin.it...

Allora intanto chi è COMMAND...???
Poi se vuoi disabilitare il Pulsante che hai premuto in seguito
ad un controllo devi prima passare il Focus ad un altro controllo..!
Poi per disabilitarlo Enabled=False
1)Se il Pulsante non è quello premuto:
 private_sub prova_click( )
     if me.txt = pippo then
        Me.TuoComando.enabled = False
    end if
end sub
2)Se il pulsante da disabilitare è quello premuto:
 private_sub prova_click( )
     if me.txt = pippo then
        Me.AltroControllo.SetFocus
        Me.Prova.enabled = False
    end if
end sub
@Alex.


title: Runtime97 e Windows95

author: Sandrobi

text:
Ho provato ad installare un Runtime di Access 97 creato con l'ODE Tools su
un computer con Windows 95. Sembra tutto a posto ma alla fine dice che non è
stato installato correttamente e in effetti viene creata la cartella di
lavoro ma il FE non si avvia.
Se è possibile, cosa c'è da fare?
Grazie
Sandrobi


title: Runtime97 e Windows95

author: pixel

text:
"Sandrobi" <

Se preparato correttamente il pacchetto Runtime funziona senza problemi
sotto win '95  (che piaccia o no al coglione dell'altro giorno).
I problemi potrebbero essere:
1) Purtroppo alcune versioni di comcatt.dll rompevano le palle: se hai VB5,
usa il comcat.dll accluso invece che quello standard di ODE '97
2) Conflitto con Access 2000/XP già preinstallato: purtroppo non ricordo il
link alla kb con le manipolazioni al registry per risolvere: se cerchi
trovi...
Pixel


title: EseguiComando

author: Roberto Barbetti

text:
stavo provando il mio applicativo da una versione all'altra ...........(ac00
ad ac02 con sistema operativo xp)
ed in particolare le azioni EseguiComando in una macro.....
quando mi sono accorto che il comando esporta
non era disponibile tra la lista delle possibili in ac00
dipende probabilmente dalle librerie installate?
è possibile aggiornare la lista degli eseguicomando in ac00??
qualsiasi suggerimento è  bene accetto visto che sono piuttosto acerbo in
materia........
grazie


title: EseguiComando

author: 'Roccia' Max

text:
On 11 Giu, 16:41, "Roberto Barbetti" <
barbe...@soilmaps.it
> wrote:
> stavo provando il mio applicativo da una versione all'altra ...........(ac00
> ad ac02 con sistema operativo xp)
> ed in particolare le azioni EseguiComando in una macro.....
> quando mi sono accorto che il comando esporta
> non era disponibile tra la lista delle possibili in ac00
Il comando da utilizzare e' TrasferisciTesto,
TrasferisciFoglioDiCalcolo o TrasferisciDatabase, a seconda del file
che vuoi ottenere.
cia'
Max


title: funzione con diversi errori

text:
ciao a tutti

ho tre errori in questa funzione,
1-cancel=true
2-necessario oggetto
3-il focus non si sposta sul record mancante

Public Function DestDiversa( _
  ByVal campo1 As Variant, _
  ByVal campo2 As Variant, _
  ByVal campo3 As Variant) As Boolean

  Dim X As String

  X = ""

  X = IIf(Nz(campo1, 0) = 0, ", Indirizzo", "") _
    & IIf(Nz(campo2, 0) = 0, ", C.A.P.", "") _
    & IIf(Nz(campo3, 0) = 0, ", Città", "")

  If (X) <> "" Then
            Dim Risposta As Variant
            Risposta = vbYes

            Risposta = MsgBox("Attenzione manca:" & Mid(X, 2) & ", vuoi inserire i dati mancanti?.", vbYesNo, "Attenzione!")

            If (Risposta = vbYes) Then
                Cancel = True

                If Nz(campo1, 0) = 0 Then
                    campo1.SetFocus

                ElseIf Nz(campo1, 0) = 0 Then
                    campo1.SetFocus

                ElseIf Nz(campo1, 0) = 0 Then
                    campo1.SetFocus

                End If

            End If

  End If

End Function


title: funzione con diversi errori

text:

correggo alcuni errori, ma non risolve il problema

                If Nz(campo1, 0) = 0 Then
                    campo1.SetFocus

                ElseIf Nz(campo2, 0) = 0 Then
                    campo2.SetFocus

                ElseIf Nz(campo3, 0) = 0 Then
                    campo3.SetFocus


title: funzione con diversi errori

author: Alessandro Cara

text:

E' la seconda volta che ti facciola domanda.
Sai cosa significa passare i parametri per valore o per riferimento?

--
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus


title: funzione con diversi errori

text:

ciao Alessandro e grazie

ByRef puo' essere cambiato
ByVal rimane invariato anche se si cerca di cambiarlo

ho sostituito ByVal con ByRef
ma ugualmente l'errore
necessario oggetto


title: funzione con diversi errori

text:

ho notato che non mi da l'errore "necessario oggetto"
se anzichè campo1 ecc. ecc.
scrivo il percorso del controllo
p.e.
forms!miaform!miasubform.form!miocontrollo

perchè?

grazie


title: funzione con diversi errori

text:

Mi sembra ovvio.
forms!miaform!miasubform.form!miocontrollo
Questa va sulla collezione /forms/  che e' globale

Non mi sono chiesto cosa /diavolo/   passi alla funzione.
Non fai prima a passare "Me" (che sarebbe il form corrente
o comunque il form che ti interessa)?

e quindi una cosa poi cisi':

Public Function DestDiversa( frm as Form) as boolean
........
If Nz(frm!quellochee', 0) = 0 Then
                      campo1.SetFocus
....etc



title: funzione con diversi errori

text:

grazie per la dritta,
ora ci provo


title: funzione con diversi errori

text:
Il 16/03/2016 12:18, Alessandro Cara ha scritto:
[cut]
>
> e quindi una cosa poi cisi':
>
> Public Function DestDiversa( frm as Form) as boolean ........ If
> Nz(frm!quellochee', 0) = 0 Then campo1.SetFocus ....etc

Public Function DestDiversa( frm as Form) as boolean
  ........
  IfNz(frm!quellochee', 0) = 0
     Then frm!quellochee'.SetFocus



title: funzione con diversi errori

text:

ciao Alessando
è cosi devo fare?

Public Function DestDiversa(frm As Form) As Boolean

  Dim X As String

  X = ""

  X = IIf(Nz(frm!campo1, 0) = 0, ", Indirizzo", "") _
    & IIf(Nz(frm!campo2, 0) = 0, ", C.A.P.", "") _
    & IIf(Nz(frm!campo3, 0) = 0, ", Città", "")

  If (X) <> "" Then
    Dim Risposta As Variant
    Dim Cancel As Integer
    Risposta = vbYes

    Risposta = MsgBox("Attenzione manca:" & Mid(X, 2) & ", vuoi inserire i dati mancanti?.", vbYesNo, "Attenzione!")

    If (Risposta = vbYes) Then
      Cancel = True

      If Nz(frm!campo1, 0) = 0 Then
        frm!campo1.SetFocus

      ElseIf Nz(frm!campo2, 0) = 0 Then
        frm!campo2.SetFocus

      ElseIf Nz(frm!campo3, 0) = 0 Then
        frm!campo3.SetFocus

      End If

    End If

  End If

End Function

-come la richiamo?
-"cancel=true" non credo vada bene scritta cosi nella funzione

grazie ancora


title: Controllare i primi due caratteri digitati in un textBox

text:
Salve,

in una casella di testo vorrei fare un controllo sui primi due caratteri digitati.

se  uguale a MO

la casella di testo diventa MONTANARI

se uguale a MA

la casella di testo diventa MASCALZONI

eccetera

ho provato con l'evento change... ma non riesco. Cmq è quella strada?

grazie


author: Karl Donaubauer

text:
Salve,

Vito Fanciullo ha scritto:

Perché non usi una casella combinata con la proprietà "Espansione
automatica" a Sì? Così potresti prendere i valori da una tabella o un
elenco valori invece di scrivere tutto nel codice.

Con u po' di codice è anche possibile di lasciare iniziare l'espansione
solo dopo la seconda (o un qualsiasi numero) di caratteri:
http://www.allenbrowne.com/ser-32.html

Se assolutamente dev'essere un casella di testo incolla qui il codice
che hai provato con l'evente change.

--
Ciao
Karl
*********
http://www.AccessDevCon.com

Access FAQ:
http://www.donkarl.com/it


text:

Ciao Karl (sono felice che ci sei ancora)

mah ho risolto così:

Private Sub Ricerca_Change()

   Dim strR As String
   strR = Me.ricerca.Text

   Me!ricerca = strR
   Me!ricerca.SetFocus
   If Me!ricerca = "ma" Then
   Me!ricerca = "mascalzoni"
   End If
   If Me!ricerca = "mo" Then
     Me!ricerca = "montanari"
     End If

   Me!ricerca.SelStart = 255 'Len(Me!Ricerca.Text)

ho pensato a questa soluzione perché in realtà in un campo devo scrivere molte
volte o montanari o mascalzoni
allora con questo codice mi basta digitare mo o ma e il codice me lo cambia rispettivamente in montanari o mascalzoni.
sicuramente ci sono diversi altri modi............
ciao
Vito


text:

quello che non capisco è cosa fa selStart = 255


text:

Niente non va bene, su quella textBox ho anche un evento afterUpdate e, a quanto pare, l'evento change mi annulla l'evento afterUpdate. Boh


text:
Salve,

vito.fa...@istitutoalberghieroabano.net
:
>>> ...
>>> Private Sub Ricerca_Change()
>>>
>>>     Dim strR As String
>>>     strR = Me.ricerca.Text
>>>
>>>     Me!ricerca = strR
>>>     Me!ricerca.SetFocus
>>>     If Me!ricerca = "ma" Then
>>>     Me!ricerca = "mascalzoni"
>>>     End If
>>>     If Me!ricerca = "mo" Then
>>>       Me!ricerca = "montanari"
>>>       End If
>>>
>>>     Me!ricerca.SelStart = 255 'Len(Me!Ricerca.Text)
>>>
>>> ho pensato a questa soluzione perché in realtà in un campo devo scrivere molte
>>> volte o montanari o mascalzoni
>>> allora con questo codice mi basta digitare mo o ma e il codice me lo cambia rispettivamente in montanari o mascalzoni.
>> ...
>> quello che non capisco è cosa fa selStart = 255

Posiziona il cursore alla fine del testo nella casella.

> Niente non va bene, su quella textBox ho anche un evento afterUpdate e, a quanto pare, l'evento change mi annulla l'evento afterUpdate.
>

Impostare il valore alla proprietà Value (come nel tuo codice) non
provoca l'evento AfterUpdate. Invece potresti impostarlo con la
proprietà Text, p.e. con (solo) questo codice nell'evento Change:

Select Case Me!ricerca.Text
     Case "ma"
         Me!ricerca.Text = "mascalzoni"
     Case "mo"
         Me!ricerca.Text = "montanari"
End Select

Me!ricerca.SelStart = 255

Se funziona bene dipende anche un po' di cosa fai nell'AfterUpdate,
perché il cursore rimane nella casella.



text:

Ciao Karl,
incredibile il codice funziona, e fa una cosa che per me è incomprensibile
ad ogni carattere che digito non solo parte l'evento change ma anche l'evento
afterUpdate! ad ogni carattere digitato!

ecco il codice afterUpdate:
commento cosa fa
io digito Montanari3AC (dopo aver digitato mo il codice tuo mi trasforma
in montanari)
poi aggiungo 3AC

quando ho finito di digitare nel campo me.ricerca ho:

campo IdClasse = montanari3AC2018/19
campo nomeProf = montanari
campo nomeClasse = 3AC

questi campi vengono popolati mano mano che digito in me.ricerca!

private Sub ricerca_AfterUpdate()
Me.IdClasse = Me.ricerca+ Me.AnnoScol

Dim Pos As Integer, i As Integer, Lung As Integer, trovaPosNumero As Integer

   'verifico la lunghezza del campo ricerca
   Lung = Len(Me.ricerca)
    ' inizio un ciclo da 1 alla lunghezza del campo ricerca
   For i = 1 To Lung
      Pos = i ' il valore della posizione di partenza (il primo carattere della stringa)
      'Verifico se il carattere è un numero
      If IsNumeric(Mid(Me.ricerca, i, 1)) Then
         'è un numero...allora
       trovaPosNumero = InStr(Me.ricerca, Mid(Me.ricerca, i, 1))

       Me.nomeProf = Left(Me.ricerca, trovaPosNumero - 1)

       Me.NomeClasse = Mid(Me.ricerca, trovaPosNumero)

          End If

       Next i
End Sub


title: inserimento Immagini

author: Fabio Holgado

text:
Ciao a Tutti, avrei questo problema da sottoporvi:
Dato che devo realizzare un db per archiviare le informazioni di prodotti di
un negozio, e tra le informazioni c'è un campo Immagine (Oggetto OLE). Mi
chiedevo come posso automatizzare l'inserimento di una immagineo del
riferimento, in un record
direttamente ad esempio, da una maschera.
In modo tale da permettere al negoziante di inserire nel db le immagini dei
prodotti(residenti nel suo HD) in modo semplice, direttamente dalla maschera
in cui inserisce le altre informazioni del prodotto.
Se non è possibile questo, che soluzione mi consigliate?
Grazie mille per l'interesse.
                                                               Fabio


title: inserimento Immagini

author: Claudio De Marco

text:
Fabio Holgado <
fab...@tiscalinet.it
> wrote in message
8iiil8$757$1...@lacerta.tiscalinet.it...
> Ciao a Tutti, avrei questo problema da sottoporvi:
> Dato che devo realizzare un db per archiviare le informazioni di prodotti
di
> un negozio, e tra le informazioni c'č un campo Immagine (Oggetto OLE). Mi
> chiedevo come posso automatizzare l'inserimento di una immagineo del
> riferimento, in un record
> direttamente ad esempio, da una maschera.
> In modo tale da permettere al negoziante di inserire nel db le immagini
dei
> prodotti(residenti nel suo HD) in modo semplice, direttamente dalla
maschera
> in cui inserisce le altre informazioni del prodotto.
> Se non č possibile questo, che soluzione mi consigliate?
>
> Grazie mille per l'interesse.
>                                                                Fabio
>
>
>
>
>
>
Se hai creato una maschera basata sulla tabella con l'oggetto OLE basta
cliccare il tasto destro sul campo dell'immagine che dal menů appare
inserisci immagine.
Ciao Claudio


title: inserimento Immagini

author: ThaiChi

text:
Sul sito comune trovi la soluzione, se importi l'immagine il database
diventa di dimensioni enormi, usando invece le immagini collegate (vedi sito
comune) hai il database piu' snello e sulla form devi solom digitare il nome
del file grafico.
Se hai altri problemi scrivimi.
Ciao
ThaiChi
Fabio Holgado <
fab...@tiscalinet.it
> wrote in message
8iiil8$757$1...@lacerta.tiscalinet.it...
> Ciao a Tutti, avrei questo problema da sottoporvi:
> Dato che devo realizzare un db per archiviare le informazioni di prodotti
di
> un negozio, e tra le informazioni c'è un campo Immagine (Oggetto OLE). Mi
> chiedevo come posso automatizzare l'inserimento di una immagineo del
> riferimento, in un record
> direttamente ad esempio, da una maschera.
> In modo tale da permettere al negoziante di inserire nel db le immagini
dei
> prodotti(residenti nel suo HD) in modo semplice, direttamente dalla
maschera
> in cui inserisce le altre informazioni del prodotto.
> Se non è possibile questo, che soluzione mi consigliate?



title: inserimento Immagini

text:
Si, in effetti avevo intenzione le immagini collegate, non ho però capito
pero cosa intendi quando dici che nella form devo inserire solo il nome del
file grafico.
Intendi schiacciando il tasto destro del topo sul punto in cui deve
comparire l'immagine nella maschera e...inserisci oggetto.. ecc....
Io vorrei fare una cosa abbastanza immediate e semplice in modo che l'utente
possa inserire l'immagine senza troppi movimenti.
Pretendo troppo?
Grazie mille per l'aiuto
Dove devo cercare esattamente ne sito comune?
Ciao
ThaiChi <
011...@bigfoot.com
> wrote in message 8iklvt$d9p$1...@serv1.iunet.it...



title: DBLibri per Roberto

author: Vitt

text:
Scusa, ma ho scoperto un piccolo problema sempre riferito al DB Libri.
Nella maschera LIBRI un pulsante permette di aprire la maschera
CITAZIONIDAMASCHERALIBRI individuando il medesimo record libro.
il suo codice, a fronte dell'evento "Su click", č:
Private Sub Comando107_Click()
On Error GoTo Err_Comando107_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "CitazioniDaMascheraLibri"
    stLinkCriteria = "[Titolo]=" & "'" & Me![Titolo] & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comando107_Click:
    Exit Sub
Err_Comando107_Click:
    MsgBox Err.Description
    Resume Exit_Comando107_Click
End Sub
Purtroppo, se il titolo del libro contiene un apostrofo, il pulsante non
funziona e genera un messaggio di errore; ad es.,
per il libro di Freud - L'interpretazione dei sogni - il messaggio generato
č:
"Errore di sintassi (operatore mancante) nell'espressione della query
'[Titolo]= 'L'interpretazione dei sogni"
C'č un modo per ovviare?
Vitt.


title: DBLibri per Roberto

author: Roberto dal portatile

text:
"Vitt" <
vit...@infinito.it
> ha scritto nel messaggio
news:9kdmuu$p8g$1...@serv1.albacom.net...
> Scusa, ma ho scoperto un piccolo problema sempre riferito al DB Libri.
> Nella maschera LIBRI un pulsante permette di aprire la maschera
> CITAZIONIDAMASCHERALIBRI individuando il medesimo record libro.
> il suo codice, a fronte dell'evento "Su click", è:
>
> Private Sub Comando107_Click()
> On Error GoTo Err_Comando107_Click
>
>     Dim stDocName As String
>     Dim stLinkCriteria As String
>
>     stDocName = "CitazioniDaMascheraLibri"
>
>     stLinkCriteria = "[Titolo]=" & "'" & Me![Titolo] & "'"
>     DoCmd.OpenForm stDocName, , , stLinkCriteria
>
> Exit_Comando107_Click:
>     Exit Sub
>
> Err_Comando107_Click:
>     MsgBox Err.Description
>     Resume Exit_Comando107_Click
>
> End Sub
>
> Purtroppo, se il titolo del libro contiene un apostrofo, il pulsante non
> funziona e genera un messaggio di errore; ad es.,
> per il libro di Freud - L'interpretazione dei sogni - il messaggio
generato
> è:
> "Errore di sintassi (operatore mancante) nell'espressione della query
> '[Titolo]= 'L'interpretazione dei sogni"
> C'è un modo per ovviare?
> Vitt.
>
Non mi ricordo quale sia la soluzione al tuo problema.
Però è stata data più volte nel NG; quindi qualcuno sicuramente risponderà
al tuo messaggio.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: DBLibri per Roberto

author: Federico Luciani

text:
Vitt wrote:
> Scusa, ma ho scoperto un piccolo problema sempre riferito al DB Libri.
> Nella maschera LIBRI un pulsante permette di aprire la maschera
> CITAZIONIDAMASCHERALIBRI individuando il medesimo record libro.
> il suo codice, a fronte dell'evento "Su click", č:
>
> Private Sub Comando107_Click()
> On Error GoTo Err_Comando107_Click
>
>     Dim stDocName As String
>     Dim stLinkCriteria As String
>
>     stDocName = "CitazioniDaMascheraLibri"
>
>     stLinkCriteria = "[Titolo]=" & "'" & Me![Titolo] & "'"
>     DoCmd.OpenForm stDocName, , , stLinkCriteria
>
> Exit_Comando107_Click:
>     Exit Sub
>
> Err_Comando107_Click:
>     MsgBox Err.Description
>     Resume Exit_Comando107_Click
>
> End Sub
>
prova cosi':
stLinkCriteria = "[Titolo]=" & chr(34) & Me![Titolo] & chr(34)
--
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------


title: DBLibri per Roberto

text:
"Federico Luciani" <
fluc...@sitocomune.com
> ha scritto nel messaggio
news:3B6AA69F...@sitocomune.com...
> Vitt wrote:
> > Scusa, ma ho scoperto un piccolo problema sempre riferito al DB Libri.
> > Nella maschera LIBRI un pulsante permette di aprire la maschera
> > CITAZIONIDAMASCHERALIBRI individuando il medesimo record libro.
> > il suo codice, a fronte dell'evento "Su click", č:
> >
> > Private Sub Comando107_Click()
> > On Error GoTo Err_Comando107_Click
> >
> >     Dim stDocName As String
> >     Dim stLinkCriteria As String
> >
> >     stDocName = "CitazioniDaMascheraLibri"
> >
> >     stLinkCriteria = "[Titolo]=" & "'" & Me![Titolo] & "'"
> >     DoCmd.OpenForm stDocName, , , stLinkCriteria
> >
> > Exit_Comando107_Click:
> >     Exit Sub
> >
> > Err_Comando107_Click:
> >     MsgBox Err.Description
> >     Resume Exit_Comando107_Click
> >
> > End Sub
> >
>
> prova cosi':
>
> stLinkCriteria = "[Titolo]=" & chr(34) & Me![Titolo] & chr(34)
>
Funziona! Grazie. Vitt


title: ripristinare un record dopo averlo creato

author: nn

text:
Nell'ultima riga di una maschera continua, quella con * a fianco del
record, quando non c'è niente dentro, praticamente il contatore deve
ancora essere attivato, praticamente per access97 cosa c'è_
null  oppure "" (stringa con nessun carattere)
e  per rimettere una casella di testo collegata o meno ad un campo,  una
situazione esaqttamente uguale a quella precedente all'inserimento di un
valore in essa, si deve assegnargli il valore null oppure "" (stringa
zero) e ci sono differenze tra le 2 assegnazioni?
se assegno questi valori,poi il record (ammesso che ho solo quel campo e
che è l'ultimo) risulta effettivamente non esistente anche se sulla
maschera continua me lo fa vedere ?
grazie1002


author: Roberto da casa

text:
"nn" <
NNNOONNVOGL...@lycos.it
> ha scritto nel messaggio
news:3DFB5F17...@lycos.it...
> Nell'ultima riga di una maschera continua, quella con * a fianco del
> record, quando non c'è niente dentro, praticamente il contatore deve
> ancora essere attivato, praticamente per access97 cosa c'è_
> null  oppure "" (stringa con nessun carattere)
In un controllo associato ad un campo di tipo contatore e chiave primaria
della tabella associata alla maschera, prima di iniziare a gigitare qualcosa
in un qualsiasi campo del record, c'è Null; Access ti visualizza la parola
(Contatore) tra parentesi tonde.
> e  per rimettere una casella di testo collegata o meno ad un campo,  una
> situazione esaqttamente uguale a quella precedente all'inserimento di un
> valore in essa, si deve assegnargli il valore null oppure "" (stringa
> zero)
Dipende dal tipo di dato del campo che è associato al controllo.
> e ci sono differenze tra le 2 assegnazioni?
Si, ci sono differenze; addirittura puoi ricevere un errore se cerchi di
impostare a "" il valore di un controllo associato ad una campo di tipo
testo per il quale hai impostato a No la proprietà Consenti lunghezza zero.
> se assegno questi valori,poi il record (ammesso che ho solo quel campo e
> che è l'ultimo) risulta effettivamente non esistente anche se sulla
> maschera continua me lo fa vedere ?
Se il record corrente non è stato salvato, per annullare tutto ciò che è
stato digitato e quindi non effettuare la registrazione di un nuovo record
devi pigiare il tasto Esc, oppure da codice eseguire un Me.Undo.
Se invece il record e già stato per qualche motivo salvato, oppure non
effettui la procedura sopra scritta, il record verrà comunque registrato
anche se con i campi vuoti, e naturalmente la maschera te lo visualizzerà.
>
> grazie1002
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: Len = null anzichè zero

author: Alberto Luzi

text:
buongiorno
Com'è possibile che Len su un controllo mi dia = null anzichè zero?
Grazie


title: Len = null anzichè zero

author: BFS

text:

se il valore del tuo controllo è null
len restituisce null

prova con len(nz(tuocontrollo))

BFS


title: Len = null anzichè zero

text:

grazie 1000


title: Len = null anzichè zero

text:

Null e Lunghezza=0 sono concetti differenti.
Una stringa a Lunghezza=0 equivale a vbNullString, questa ha un riferimento in memoria.
Una stringa però non può essere NULL, un controllo invece può non avere alcuna valorizzazione ed essere NULL, in questo caso LEN non può calcolare nulla.
Per questo motivo, o usi il suggerimento di BSF, oppure sfrutti il Casting dei dati:
Len(tuocontrollo & vbNullstring)

Questo automaticamente effettua la conversione del NULL in vbNullString che equivale a Stringa VUOTA ed il LEN restituisce [0].

Saluti
@Alex


title: Len = null anzichè zero

author: RobertoA

text:

Len(tuocontrollo & vbNullstring)

Carina questa, non la sapevo
D'ora in poi cast-eremo


title: Len = null anzichè zero

text:

grazie Alex per la spiegazione


title: sono cretino io....

author: Piero Bolletta

text:
oppure non esiste una funziona che calcola i giorni lavorativi tra due date,
come per esempio (e facilissimamente) in excel?
Grazie.


title: sono cretino io....

author: Thierry Rega

text:
> oppure non esiste una funziona che calcola i giorni lavorativi tra due
date,
> come per esempio (e facilissimamente) in excel?
Se ben ricordo dovrebbe essere sul sito comune
(
http://members.xoom.it/it_db_access/
).
Comunque ho il codice però in ufficio. Se nel frattempo nessuno te l'ha
dato, te lo posso mandare.
Ciao
Thierry


title: sono cretino io....

author: lbo dal portatile

text:
>oppure non esiste una funziona che calcola i giorni lavorativi tra due date,
>come per esempio (e facilissimamente) in excel?
gia' pronta non esiste.  siccome non sei cretino te la puoi scrivere,
cosi' ci metti dentro anche la Pasqua e il giorno del S. Patrono del
tuo comune che forse excel non considera.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/


title: sono cretino io....

text:
lbo dal portatile <
l...@NOSPAM.blunet.it
> wrote in message
39629ec4...@news.interbusiness.it...
> >oppure non esiste una funziona che calcola i giorni lavorativi tra due
date,
> >come per esempio (e facilissimamente) in excel?
>
> gia' pronta non esiste.  siccome non sei cretino te la puoi scrivere,
Mi sopravvaluti! ;-)
In realta' qualche pastrugno l'ho provato a fare.
Ho creato una tabella coi giorni lavorativi, quindi senza agosto, il ponte
di natale ecc.
E poi una query banale mi calcola il numero dei record compresi tra le due
date.
Il problema e' che non so come prendere il valore che rende la query e
metterlo nel mio campo.
E' sicuramente una cavolata, ma mi sfuggono un sacco di cose di questo
access.
> cosi' ci metti dentro anche la Pasqua e il giorno del S. Patrono del
> tuo comune che forse excel non considera.
Da questo punto di vista excel si comporta bene, quasi quanto "quattro",
accetta una matrice di date da considerare non lavorative.
L'unica cosa e' ricordarsi di implementare lo "strumento analisi", a me ha
fatto perdere due ore questa dimenticanza.


title: sono cretino io....

text:
Thierry Rega <
thier...@tiscalinet.it
> wrote in message
8jttti$5jc$1...@pegasus.tiscalinet.it...
> > oppure non esiste una funziona che calcola i giorni lavorativi
> Se ben ricordo dovrebbe essere sul sito comune
> (
http://members.xoom.it/it_db_access/
).
Al momento mi dice che non funziona/non e' accessibile, provo piu' tardi,
grazie.


title: sono cretino io....

author: Silvio Berruti

text:
Mai lodarsi... almeno pubblicamente!
;-))))
Ciao
Silvio


title: sono cretino io....

text:
>In realta' qualche pastrugno l'ho provato a fare.
>Ho creato una tabella coi giorni lavorativi, quindi senza agosto, il ponte
>di natale ecc.
>E poi una query banale mi calcola il numero dei record compresi tra le due
>date.
>
>Il problema e' che non so come prendere il valore che rende la query e
>metterlo nel mio campo.
vedi sull'help Count.
comunque credo che quello che ti farebbe comodo sia una funzione alla
quale dai una data di inizio e una di fine e quella ti restituisce un
numero intero che corrisponde ai giorni lavorativi intercorrenti.  una
specie di datediff corretta, per intenderci.
io non la farei tanto complicata.  diciamo che creerei una tabella con
le date festive, con un campo DataFestiva (indicizzato, per poter
usare il metodo .seek) e DescrizioneFestivita (che non useremo ma non
si sa mai).
poi non farei altro che un ciclo dalla data di inizio a quella di fine
e incrementerei un contatore solo se la data e' feriale (mi era
scappato seriale...).  diciamo che farei una cosa del genere:
function QuantiGiorniLavorativi(dInizio as date, dFine as date) as
Long
' non si sa mai, ti servissero piu' di 32mila giorni...
dim c as long
dim d as date
dim rstFestivi ' tabella delle festivita' personalizzate
                     ' (Pasquetta, S. Patrono...)
set rstFestivi=currentdb.openrecordset("TabellaFestivita")
rstFestivi.index=nomeindice
' non si sa mai inverti le date:
if dInizio>dFine then
	d=dInizio
	dInizio=dFine
	dFine=dInizio
end if
d=dInizio
do until dInizio >=dFine
	select case weekday(d)
		case vbsaturday, vbsunday
			' sabato o domenica, non fare niente
		case else
			' vedi se sta nella tabella dei festivi
"personalizzati"
			rstFestivi.movefirst
			rstFestivi.seek "=", d
			if rst.nomatch then
				' non sta nei festivi
				c=c+1
			end if
	end select
loop
QuantiGiorniLavorativi=c
end function



title: sono cretino io....

text:
lbo dal portatile <
l...@NOSPAM.blunet.it
> wrote in message
3963fdce...@news.interbusiness.it...
> >Il problema e' che non so come prendere il valore che rende la query e
> >metterlo nel mio campo.
>
> vedi sull'help Count.
E' molto interessante, anche se mi sgomenta un pochino vedere in quanti modi
si puo' fare una cosa, alla fine non so quale strada prendere.
in pratica consigli di lanciare uno statement sql, pero' come passo poi il
risultato della query al campo?
> io non la farei tanto complicata.  diciamo che creerei una tabella con
> le date festive
Se non interpeto male e' una ipotesi speculare alla mia, che prendeva in
considerazione i giorni lavorativi.
In questo caso mi pare che si facciano meno calcoli.
Una tabella coi giorni lavorativi viene sempre buona poi, per il budget e
per pianificare il carico macchine ed e' un prinmo passettino verso un mrp,
nel caso si abbia bisogno di piu' calendari, personalizzati per macchina o
per lavoratore.
> con un campo DataFestiva (indicizzato, per poter
> usare il metodo .seek) e DescrizioneFestivita (che non useremo ma non
> si sa mai).
La useremo si, all'inizio anno si caricano le feste dell'anno, prese dal
contratto nuovo, o da qualche ricorrenza o da qualche novita' politica o
sindacale, e si filtra su quello.
In pratica si fa una query in sottrazione dal calendario dell'anno dalle
festivita'.
Grazie ancora, mi sono comprato un paio di libri, ci sono troppe cose che
non so.
Ciao


title: sono cretino io....

text:
>E' molto interessante, anche se mi sgomenta un pochino vedere in quanti modi
>si puo' fare una cosa, alla fine non so quale strada prendere.
be', questo e' un classico dell'informatica in generale e di access in
particolare...  scegli quella che ti piace di piu'.  generalmente fare
le cose via codice e' piu' flessibile, diciamo che e' piu' "fico".
>in pratica consigli di lanciare uno statement sql, pero' come passo poi il
>risultato della query al campo?
forse non ricordo bene il thread, cosa intendi per passare il
risultato della query alcampo?  quale campo?



title: sono cretino io....

text:
lbo dal portatile <
l...@NOSPAM.blunet.it
> wrote in message
396521c7...@news.interbusiness.it...
> >in pratica consigli di lanciare uno statement sql, pero' come passo poi
il
> >risultato della query al campo?
>
> forse non ricordo bene il thread, cosa intendi per passare il
> risultato della query alcampo?  quale campo?
mi sfugge una cosa, probabilmente molto banale am che io non vedo...
facciamo l'esempio "count", ok, io lancio una query, anche in quel buffo
modo sql, select where, count etc.
Ok, la query mi rende 42.
Adesso devo passare 42 nel campo "giorni" della tabella "carico macchine".
Sarebbe un "[giorni]=somma di giorni" in paradox, access cosa lo fa
diventare?


title: sono cretino io....

text:
>E' molto interessante, anche se mi sgomenta un pochino vedere in quanti modi
>si puo' fare una cosa, alla fine non so quale strada prendere.
be', questo e' un classico dell'informatica in generale e di access in
particolare...  scegli quella che ti piace di piu'.  generalmente fare
le cose via codice e' piu' flessibile, diciamo che e' piu' "fico".
>in pratica consigli di lanciare uno statement sql, pero' come passo poi il
>risultato della query al campo?
forse non ricordo bene il thread, cosa intendi per passare il
risultato della query alcampo?  quale campo?
--



title: sono cretino io....

text:
>facciamo l'esempio "count", ok, io lancio una query, anche in quel buffo
>modo sql, select where, count etc.
>Ok, la query mi rende 42.
hai letto Douglas Adams?
comunque non si era parlato di scrivere una funzione che restituisse
un certo valore?  in linea di massima comunque il discorso non cambia.
>Adesso devo passare 42 nel campo "giorni" della tabella "carico macchine".
>
>Sarebbe un "[giorni]=somma di giorni" in paradox, access cosa lo fa
>diventare?
ok, capito.  devi scrivere questo dato in una tabella.  ci sono
diversi modi (come volevasi dimostrare) per scrivere un dato in un
campo (colonna) di una tabella.  il problema e' in che record (riga)
andarlo a scrivere.
purtroppo non conosco paradox per cui non so dirti a cosa corrisponda
l'espressione che dici, se corrispondenze vi siano.
posso dirti i modi in cui scrivere il dato in una tabella. allora, il
primo e' settare un recordset (detto anche in altri ambienti
puntatore, qualcosa che punta ai record) sulla tabella.  dopodiche'
per mezzo del recordset puoi aggiungere un nuovo record (metodo
addnew) o posizionarti sul record che ti interessa e chiedere di
modificarlo (metodo .edit), poi scrivi il valore nel campo che ti
interessa e salvi la modifica (metodo .update).  ad es.:
dim rst as recordset
set rst=currentdb.openrecordset("carico macchine")
rst.addnew
rst!Giorni=valore
rst.update
adesso, se valore te lo ricavi con una query di conteggio, te lo puoi
ricavare cosi':
dim rstC as recordset
dim ssql as string
dim valore as long
ssql = "Count(*) as Conteggio FROM [carico macchine] WHERE..."
set rstC=currentdb.openrecordset(ssql)
valore=rst!Conteggio
se invece preferisci usare la funzione di cui parlavamo:
dim valore as long
valore=funzione(argommento1, argomento2...)
questo e' un modo.
un altro modo e' quello di sfruttare gli evento di una maschera
collegata alla tabella che vuoi aggiornare.  in seguito ad un certo
evento (clic di un pulsante, nuovorecord ecc.) fai eseguire un codice
che calcola il valore, con la query o la funzione, e lo assegni al
controllo della maschera legato al campo che ti interessa aggiornare.
spero sia tutto chiaro...



title: sono cretino io....

text:
lbo dal portatile <
l...@NOSPAM.blunet.it
> wrote in message
> >Ok, la query mi rende 42.
>
> hai letto Douglas Adams?
Eggia'  :-)
> primo e' settare un recordset (detto anche in altri ambienti
> puntatore, qualcosa che punta ai record) sulla tabella.
Miiiiiiiiiiiiiiiiiiiiiii hai squarciato le mie tenebre!
Il recordset e' il puntatore!
Cazzo di nome... io pensavo che il recordset fosse (a stretto rigore della
filosofia relazionale) la tabella ottenuta come risultato della query.
Oddio, magari lo e' anche...
Domanda, puo' il recordset essere un insieme di record?
Oppure, no, il recordset e' il record all'interno della tabella sul quale e'
il puntatore.
Quindi, ok, porto il recordset dove mi interessa, con un seek, con una
query, con un ciclo do..loop, ok, a questo punto il campo e' posizionato sul
record giusto.
> adesso, se valore te lo ricavi con una query di conteggio, te lo puoi
> ricavare cosi':
>
> dim rstC as recordset
> dim ssql as string
> dim valore as long
> ssql = "Count(*) as Conteggio FROM [carico macchine] WHERE..."
> set rstC=currentdb.openrecordset(ssql)
> valore=rst!Conteggio
Capito, la mia mente si rifiutava di fronte a tanta macchinosita', ma se
questa e' la strada...
Definisco il recordset
Lo apro in editing
Passo il campo a una variabile, e adesso... lavoro sulla variabile a la
rimetto nel database...
Per fare il lavoro inverso?
Valore=rst!conteggio
(e qui mi sfugge il senso del punto esclamativo)
me.GiornoConsegna = me.GiornoInizio & Valore
Funziona?
> un altro modo e' quello di sfruttare gli evento di una maschera
> collegata alla tabella che vuoi aggiornare.
grazie ancora, mi stai facendo un vero e proprio corso! :-)
Se capitera' di incontrarsi e ti piace la birra sarei lieto di offrirtene
quanta ne riusciamo a bere!


title: sono cretino io....

text:
>Cazzo di nome... io pensavo che il recordset fosse (a stretto rigore della
>filosofia relazionale) la tabella ottenuta come risultato della query.
>Oddio, magari lo e' anche...
gia'...
>Domanda, puo' il recordset essere un insieme di record?
la traduzione letterale sarebbe questa...  diciamo che e' un puntatore
ad un insieme di record.
>Oppure, no, il recordset e' il record all'interno della tabella sul quale e'
>il puntatore.
no, questo no.  a meno che tu non abbia un recordset di un record...
comunque no, ho capito cosa dici, un recordset e' qualcosa per
scorrere e a volte interagire con un insieme di record.
>Quindi, ok, porto il recordset dove mi interessa, con un seek, con una
>query, con un ciclo do..loop, ok, a questo punto il campo e' posizionato sul
>record giusto.
yeees.  con una query comunque non ti posizioni su un record, semmai
individui il record che ti interessa, se ha una chiave univoca,
schiaffandolo in un recordset di un record soltanto...  vediti
comunque sull'help move e compagnia.
>Capito, la mia mente si rifiutava di fronte a tanta macchinosita', ma se
lo so, e' successo anche a me...
>Definisco il recordset
>Lo apro in editing
>Passo il campo a una variabile, e adesso... lavoro sulla variabile a la
>rimetto nel database...
si'.
>Per fare il lavoro inverso?
>Valore=rst!conteggio
si'.
>(e qui mi sfugge il senso del punto esclamativo)
allora, rst adesso sta puntando ad un record.  questo record ha 1 o
piu' campi.  puoi accedere al contenuto del campo che ti interessa con
la sintassi: rst![nomecampo] o rst("nomecampo").  sull'help rst! viene
data come piu' veloce in esecuzione di rst("...").  le parentesi
quadre sono opzionali se il nome del campo non contiene spazi.
>me.GiornoConsegna = me.GiornoInizio & Valore
>
>Funziona?
mmmh... in questo caso non credo.  & e' un operatore di concatenazione
di stringhe.  cos'e' che vuoi fare, che non me lo ricordo?
>Se capitera' di incontrarsi e ti piace la birra sarei lieto di offrirtene
>quanta ne riusciamo a bere!
te dice bene perche' ho smesso di bere alcolici...  pero' magno come
un disperato...



title: sono cretino io....

text:
lbo dal portatile <
l...@NOSPAM.blunet.it
> wrote in message
396d7b39...@news.interbusiness.it...
> >(e qui mi sfugge il senso del punto esclamativo)
>
> allora, rst adesso sta puntando ad un record.  questo record ha 1 o
> piu' campi.  puoi accedere al contenuto del campo che ti interessa con
> la sintassi: rst![nomecampo] o rst("nomecampo").
Okkey, il discorso del contenitore, il campo all'interno del record nella
tabella:
tabella!record!campo.
E il punto allora?
> >me.GiornoConsegna = me.GiornoInizio & Valore
> >
> >Funziona?
>
> mmmh... in questo caso non credo.  & e' un operatore di concatenazione
> di stringhe.  cos'e' che vuoi fare, che non me lo ricordo?
sommare dei giorni alla data di inizio per sapere la data di fine, ok, c'e'
una funzione per questo, anzi, e' quella che ho fatto che somma i giorni
lavorativi.
 Spero di riuscire a mettere insieme il tutto, passero' un simpatico agosto.
> te dice bene perche' ho smesso di bere alcolici...  pero' magno come
> un disperato...
:-)


title: sono cretino io....

text:
>> la sintassi: rst![nomecampo] o rst("nomecampo").
>
>Okkey, il discorso del contenitore, il campo all'interno del record nella
>tabella:
>tabella!record!campo.
no, un momento.  questa sintassi assomiglia al modo di riferirsi a
controlli nelle maschere, non a campi di record di tabelle.
forse avrai visto qualcosa del tipo forms!maschera!controllo.  cioe'
prendi la collezione delle form attualmente aperte (forms), in questa
collezione individui una maschera, di questa maschera individui un
controllo.  il controllo disporra' di proprieta', che potrai leggere
e/o settare.
ora, e' vero che per mezzo di maschere si possono manipolare tabelle
ossia dati, ma tabella!record!campo sintatticamente non ha senso.
>E il punto allora?
diciamo che il punto e' alternativo al punto esclamativo quando ti
riferisci ad un controllo di una maschera.  nel codice eseguito
all'interno di una maschera puoi riferirti al controllo pippo sia come
me!pippo che come me.pippo.  se in codice usi il punto si attiva uno
scrollino che non ricordo come si chiama, sostanzialmente una lista
dei controlli, metodi e proprieta' della maschera.
pero' non puoi usare recordset.campo.
>> >me.GiornoConsegna = me.GiornoInizio & Valore
>> >
>> >Funziona?
>>
>> mmmh... in questo caso non credo.  & e' un operatore di concatenazione
>> di stringhe.  cos'e' che vuoi fare, che non me lo ricordo?
>
>sommare dei giorni alla data di inizio per sapere la data di fine, ok, c'e'
allora sicuramente non funziona.  semmai potrebbe funzionare +.
>una funzione per questo, anzi, e' quella che ho fatto che somma i giorni
>lavorativi.
mah, per quanto alcuni lo facciano e per quanto in effetti le date/ore
sianno immagazzinatein un valore numerico in cui la parte intera
rappresenta i giorni e la parte decimale ore, minuti e secondi, io
preferisco non eseguire calcoli aritmetici con tali valori.
preferisco le funzioni apposite che anche tu dici, dateadd e datediff.
(da notare che datediff non e' il contrario di dateadd: dateadd
aggiunge *algebricamente* un valore ad una data, ossia puo' anche
aggiungere un valore negativo).



title: sono cretino io....

text:
"lbo dal portatile" <
l...@NOSPAM.blunet.it
> ha scritto nel messaggio
news:396eac3...@news.interbusiness.it...
> >> la sintassi: rst![nomecampo] o rst("nomecampo").
> >
> >Okkey, il discorso del contenitore, il campo all'interno del record nella
> >tabella:
> >tabella!record!campo.
>
> no, un momento.  questa sintassi assomiglia al modo di riferirsi a
> controlli nelle maschere, non a campi di record di tabelle.
>  [Omissis...]
> ora, e' vero che per mezzo di maschere si possono manipolare tabelle
> ossia dati, ma tabella!record!campo sintatticamente non ha senso.
>
> >E il punto allora?
>
> diciamo che il punto e' alternativo al punto esclamativo quando ti
> riferisci ad un controllo di una maschera.  nel codice eseguito
> all'interno di una maschera puoi riferirti al controllo pippo sia come
> me!pippo che come me.pippo.  se in codice usi il punto si attiva uno
> scrollino che non ricordo come si chiama, sostanzialmente una lista
> dei controlli, metodi e proprieta' della maschera.
>
> pero' non puoi usare recordset.campo.
Scusate se mi intrometto, ma, a rafforzare quanto elegantemente spiegato da
Lbo, riporto il testo della guida in linea di A97 a tale riguardo:
_______________________________________________________
Utilizzo degli operatori punto esclamativo (!) e punto (.) nelle espressioni
È possibile utilizzare gli operatori punto esclamativo (!) e punto (.) in un
identificatore per indicare il tipo di elemento immediatamente successivo.
L'operatore punto esclamativo (!) indica che ciò che segue è un elemento
definito dall'utente, cioè un elemento di un insieme. È possibile utilizzare
l'operatore punto esclamativo (!), ad esempio, per fare riferimento ad una
maschera o ad un report aperto oppure ad un controllo di una maschera o di
un report aperto.
Identificatore                        Fa riferimento a
Forms![Ordini]                     Maschera aperta Ordini
Reports![Fattura]                 Report aperto Fattura
Forms![Ordini]![IDOrdine]  Controllo IDOrdine della maschera aperta Ordini
L'operatore punto (.) indica che ciò che segue è un elemento attivo definito
dal programma. Utilizzare l'operatore punto (.), ad esempio, per fare
riferimento ad una proprietà di una maschera, di un report o di un
controllo.
Nota   È possibile inoltre utilizzare l'operatore punto (.) per fare
riferimento ad un valore di campo di un'istruzione SQL, ad un metodo di
Visual Basic, Applications Edition o ad un insieme. L'identificatore
Forms![Ordini].Controls, ad esempio, fa riferimento all'insieme Controls
della maschera Ordini. Poiché, tuttavia, l'insieme Controls è predefinito
per maschere e report, non è necessario, in genere, farvi riferimento in
modo esplicito.
_______________________________________________________



title: sono cretino io....

text:
Silvio Berruti <
s...@gma.it
> wrote in message
8kp87m$e4v$1...@fe2.cs.interbusiness.it...
> Scusate se mi intrometto, ma, a rafforzare quanto elegantemente spiegato
da
> Lbo, riporto il testo della guida in linea di A97 a tale riguardo:
Ti ringrazio.
Per non sembrare cretino del tutto (o per rafforzare l'idea) voglio
aggiungere che ho certo un help sull'uso del punto esclamatico in tutto
l'help di A2000, senza trovarlo.


title: sono cretino io....

text:
>Per non sembrare cretino del tutto (o per rafforzare l'idea) voglio
>aggiungere che ho certo un help sull'uso del punto esclamatico in tutto
>l'help di A2000, senza trovarlo.
hai priovato all'inizio inizio?  comunque vedi il mex di Silvio.
--



title: recordset non aggiornabile

author: giovanna palumbo

text:
avrei l'esegenza di modificare i dati in una query, ma comunque imposto i
join, quando tento di inserire un valore in un determinato campo mi esce
sempre la scritta che il recordset non è aggiornabile. SOS SOS SOS
non so più cosa fare.
Attendo fiduciosa.
Grazie a tutti


title: recordset non aggiornabile

text:
"giovanna palumbo" <
gi...@tiscalinet.it
> ha scritto nel messaggio
news:a2bcp5$7j4$1...@lacerta.tiscalinet.it...

Alcune query producono recorset non aggiornabili in quanto i dati che sono
in esse contenuti non sono fisicamente rintracciabili in maniera univoca.
Tra queste query ci sono quelle di raggruppamento, quelle a campi incrociati
e quelle in cui vengono messe in join due o più tabelle in relazione tra di
loro uno-a-molti; in quest'ultimo caso sono aggiornabili solo i campi
relativi alla tabella del lato molti.
Probabilmente il tuo problema fa parte di quest'ultimo caso; mi dispiace
dirtelo ma un recordset non aggiornabile resta tale e non ci sono SOS che
facciano cambiare idea ad Access.
A cambiare idea dovrai essere necessariamaente tu usando altre strade; ad
esempio usando la tecnica della maschera/sottomaschera: nella maschera, che
avrà come origine record la tabella del lato uno, aggiornerai appunto i
campi dei tale tabella, mentre nella sottomaschera aggiornerai i dati della
tabella del lato molti.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: recordset non aggiornabile

author: Ivan

text:
"giovanna palumbo" <
gi...@tiscalinet.it
> ha scritto nel messaggio
news:a2bcp5$7j4$1...@lacerta.tiscalinet.it...

 ciao giovanna,
devi ricordare che molti tipi di recordset non sono aggiornabili. Questo
perchè sono il risultato di una interrogazione su più tabelle oppure
derivati da raggruppamenti. Sarebbe impossibile inserire un record e
correlarlo alla 'rovescia', Access non saprebbe come fare.
Delega l'inserimento a maschere che agiscono su tabelle o a maschere e
sottomaschere. In questa maniera Access lega i record della sottomaschera a
quelli in maschera principale, mantenendo salda l'integrità dei dati.
Mi rendo conto che la spiegazione è fumosa ma alcune piccole considerazioni
logiche possono aiutarti ad arrivare alla giusta comprensione della
struttura delle basi di dati.
ivan


title: Sicurezza: qualcosa mi sfugge...

author: Luciano

text:
Se gruppi &  utenti & permessi che configuro vanno a finire nel
mio_system.mdw...come faccio a far si che se copio tutto su un' altro PC non
mi si apra col system.mdw di quella macchina (cioe' senza permesso alcuno)?
Effettivamente con Autocomposizione/sicurezza funziona...ma volendolo fare
manualmente non ho capito come (o meglio cosa succede)!
Saluti.
Luciano


title: Sicurezza: qualcosa mi sfugge...

author: Voltolini

text:
Le autorizzazioni che dai non le devi salvare nel system.mdw,ma per esempio
in Pincopallino.mdw,il system.mdw e' quello accessibile a tutti se non e'
protetto da password (qualcuno mi corregga),in ogni caso devi usare un altro
nome,se su un altro computer vi fosse gia' il Pincopallino.mdw,se
sovrascrivi tale file,protetto da password,nessuno te lo puo' aprire,per
vedere le autorizzazioni.
Voltolini
Luciano <
mc5...@mclink.it
> wrote in message 8aqkpi$9rs$2...@news.mclink.it...



title: Sicurezza: qualcosa mi sfugge...

text:
Luciano wrote:
> Se gruppi &  utenti & permessi che configuro vanno a finire nel
> mio_system.mdw...come faccio a far si che se copio tutto su un' altro PC non
> mi si apra col system.mdw di quella macchina (cioe' senza permesso alcuno)?
> Effettivamente con Autocomposizione/sicurezza funziona...ma volendolo fare
> manualmente non ho capito come (o meglio cosa succede)!
> Saluti.
> Luciano
Infatti non devi usare il system.mdw, ma crearne uno nuovo
(vedi help).
Per far si che venga usato il tuo devi aprire l'mdb con una
riga di comando di questo tipo:
"C:\Programmi\...\MSACCESS.EXE" /wrkgrp C:\...\pippo.mdw
C:\...\paperino.mdb
Ti consiglio cmq di leggere la FAQ sul SitoComune.
--
Federico
--------------------------------------
Sito Comune di it.comp.database.access
 ed ora
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------


title: Sicurezza: qualcosa mi sfugge...

text:
Federico Luciani ha scritto nel messaggio
<
38D0FD11...@paperino.libero.it
>...
>Infatti non devi usare il system.mdw, ma crearne uno nuovo
I know...:-)
>(vedi help).
Gia' fatto..:-)
>Per far si che venga usato il tuo devi aprire l'mdb con una
>riga di comando di questo tipo:
>"C:\Programmi\...\MSACCESS.EXE" /wrkgrp C:\...\pippo.mdw
>C:\...\paperino.mdb
Okay, questo e' quanto dicono l'help ed il sito comune, ma se io do una
copia a tizio mica posso dirgli se non usi l'MDW che ti do io so' cazzi
tuoi!:-))) Ovvero, se lui si copia l'MDB/MDE sul suo PC, il suo Access
partita' con il suo MDW.
Quindi la mia domanda e' (premesso che certamente qualcosa mi sfugge): come
dare a destra e a manca il mio MDB protetto?
>Ti consiglio cmq di leggere la FAQ sul SitoComune.
Gia' fatto anche questo...:-)
Saluti.
Luciano


title: Sicurezza: qualcosa mi sfugge...

text:
Voltolini ha scritto nel messaggio ...
>Le autorizzazioni che dai non le devi salvare nel system.mdw,ma per esempio
>in Pincopallino.mdw,il system.mdw e' quello accessibile a tutti se non e'
>protetto da password (qualcuno mi corregga),in ogni caso devi usare un
altro
>nome,se su un altro computer vi fosse gia' il Pincopallino.mdw,se
>sovrascrivi tale file,protetto da password,nessuno te lo puo' aprire,per
>vedere le autorizzazioni.
Esatto, fin qu c'ero gia'. Ma se io do a tizio il mio MDB/MDE  come faccio a
costringerlo ad usare l'MDW che dico io e non quello del suo PC con le sue
autorizzazioni?
Saluti.
Luciano


title: Sicurezza: qualcosa mi sfugge...

author: Giorgio PS

text:
Luciano <
mc5...@mclink.it
> wrote in message
8ar21r$j7$1...@lacerta.tiscalinet.it...

Allora sei proprio de coccio :)))
Il problema deve essere visto in questi termini: io, sviluppatore, non
voglio che un utente veda o possa modificare ciò che io non desidero!
Quindi: creati un tuo *.mdw e creati un nuovo utente che sarà l'unico ad
avere i provilegi di amministrazione. Regredisci l'utente Amministratore
(standard nei file mdw) al ruolo di semplice utente senza possibilità di
amministrazione. In questo modo succede questo:
- nei nuovi database, i permessi utenti/gruppi, riconosceranno l'utente
Amministratore come utente *limitato*
- negli stessi il nuovo amministratore avrà il pieno controllo
- quando sposterai il file mdb/mde su di un altro computer e lo aprirai,
l'utente di default: Amministratore, avrà privilegi limitati a quello che tu
avrai in precedenza deciso.
Questo accade perchè nel db vengono memorizzate le associazioni tra utente e
permessi e nel file mdw i soli utenti.
I due file mdw (quello originale e quello creato da te) hanno in comune
l'utente Amministratore che è l'utente a cui Access fa riferimento SALVO
DIVERSA ED ESPLICITA INDICAZIONE.
Avendo tu nel tuo db *limitato* l'azione di *Amministratore*, avrai, di
fatto, protetto il tuo db.
Chiaro?
Ora vai a rileggerti il tutto sul sito comune.
Bye
--
********************************************
Giorgio B. - P.S. elettronica srl - Udine
email:
giorgio....@ps-elettronica.it


title: Sicurezza: qualcosa mi sfugge...

text:
Luciano wrote:
> Federico Luciani ha scritto nel messaggio
>...
> >Per far si che venga usato il tuo devi aprire l'mdb con una
> >riga di comando di questo tipo:
> >"C:\Programmi\...\MSACCESS.EXE" /wrkgrp C:\...\pippo.mdw
> >C:\...\paperino.mdb
>
> Okay, questo e' quanto dicono l'help ed il sito comune, ma se io do una
> copia a tizio mica posso dirgli se non usi l'MDW che ti do io so' cazzi
> tuoi!:-))) Ovvero, se lui si copia l'MDB/MDE sul suo PC, il suo Access
> partita' con il suo MDW.
deve essere cosi'..
Forse ci vuole un chiarimento!
Se la protezione e' del tipo: tutti possono accedere ai
dati, ma nessuno puo' modificare forms, reports e
quant'altro, allora la risposta di Giorgio e' piu' che
esaustiva.
Se invece la protezione e' un sistema di accessi per gruppi
di utenti, cioe' ogni utente ha la sua bella pwd e quindi
solo gli utenti autorizzati possono accedere al db, allora
il db puo' essere utilizzato solo con quell'mdw (gruppo di
lavoro).
Naturalmente tu puoi sostituire il loro gruppo di lavoro di
default (system.mdw) con il tuo, ma questo implica che
tutte le volte che loro aprono access per fare i loro
comodi gli viene richiesta l'autenticazione, non solo,
tutti quelli che non possono accedere al tuo mdb non
potranno aprire access per fare i loro comodi.
In definitiva e' piu' che lecito usare un altro gruppo di
lavoro, il tuo cliente se si vuole copiare l'mdb su di
un'altro pc, dovra' creare un collegamento con quella riga
di comando oppure chiamera' te per farlo e ti farai pagare.
Onestamente non capisco dove sta il problema! Se non vuoi
farglielo fare a mano, ci sono varie alternative per creare
uno shortcut:
- Setup wizard di office (se possiedi ODE)
- File batch di windows (vbscript)
- Un mdb che lo crea e si chiude
- ecc
L'alternativa all'uso di un mdw e' svilupparsi un sistema
di accessi in proprio, ma ne vale la pena?
Bye



title: Sicurezza: qualcosa mi sfugge...

text:
Il tizio o richiama il tuo mdw tramite il comando wrkgadm.exe,oppure piu'
semplicemente si crea una icona di collegamento inserendo nelle proprieta'
il codice di cui sotto,dove Fatture.mdb è il nome del database e Fatture.mdw
quello del gruppo di lavoro,entrambi nell'esempio nella cartella Documenti.
Cosi' facendo tizio e' libero di aprire Access in maniera non protetta se
clicca sull'icona standard di avvio di MsAccess,se invece clicca sulla tua
icona parte il tuo programma protetto.
In ogni caso tizio per usare il tuo database deve per forza passare
attraverso Fatture.mdw,altrimenti il database non lo apre, se le
autorizzazioni sono state date in maniera corretta.
Se proprio credi che vi siano due file mdw con nome uguale,il tuo lo metti
in una cartella dal nome insolito,modificando ovviamente il percorso nel
codice di cui sotto,cosi' sei sicuro che parte il tuo mdw,in ogni caso nella
stessa cartella non vi possono essere due file mdw con il nome uguale!
Credo che la tua preoccupazione era l'automatizzazione di tutto o sbaglio?
Voltolini
Codice icona collegamento
Destinazione:
"C:\Programmi\Microsoft Office\Office\MSACCESS.EXE"
"C:\documenti\Fatture.mdb" /wrkgrp Fatture.mdw
Da:
c:\documenti
N.B.E' importante scrivere esattamente barre e virgolette.



title: Sicurezza: qualcosa mi sfugge...

author: Stefano Bettini

text:
Federico Luciani <
fluc...@paperino.libero.it
> wrote in message
38D12A1B...@paperino.libero.it...
>
> L'alternativa all'uso di un mdw e' svilupparsi un sistema
> di accessi in proprio, ma ne vale la pena?
>
Eccome!
Solo un sistema *tuo* ti garantisce le potenzialità e la flessibilità
richieste dalla *tua* applicazione.
Senza contare la rottura di balle evitata di dover distribuire un
tuo system.mdw, di dover fare link strani, delle telefonate del
cliente perchè ha scombinato lo shortcut e non va + un accidenti
ecc. ecc......
Bye, Ste


title: Sicurezza: qualcosa mi sfugge...

text:
Federico Luciani ha scritto nel messaggio
<
38D12A1B...@paperino.libero.it
>...
>Forse ci vuole un chiarimento!
Okay, ora ci sono, grazie!:-)
>Onestamente non capisco dove sta il problema! Se non vuoi
>farglielo fare a mano, ci sono varie alternative per creare
>uno shortcut:
>- Setup wizard di office (se possiedi ODE)
>- File batch di windows (vbscript)
>- Un mdb che lo crea e si chiude
>- ecc
>
>L'alternativa all'uso di un mdw e' svilupparsi un sistema
>di accessi in proprio, ma ne vale la pena?
La mia situazione e' questa:
Voglio che il BE non sia apribile in nessun modo da chiunque, neppure
(soprattutto) per la lettura dei dati.
Nel FE deve essere protetto il codice e la struttura di ogni oggetto,
nonche'
la possibilita' di crearne di nuovi.
A questo punto mi chiedo:
mi conviene collegare e scollegare le tabelle
ogni volta che mi servono piuttosto che riallegarle all'avvio (per maggiore
sicurezza,intendo)? La proprieta' delle tabelle connect accetta user e PW?
Oppure mi apro il BE di volta in volta da codice e faccio i miei bei Select
direttamente sul BE per creare i recordset?
Saluti.
Luciano


title: Sicurezza: qualcosa mi sfugge...

text:
Giorgio PS ha scritto nel messaggio <8ar6fn$ble$
1...@pinco.nettuno.it
>...
>Allora sei proprio de coccio :)))
Ecco, questo e' il ringraziamento per averti aiutato migliaia (dico
MIGLIAIA!) di volte!!!:-))))
>Questo accade perchč nel db vengono memorizzate le associazioni tra utente
> e permessi e nel file mdw i soli utenti.
>I due file mdw (quello originale e quello creato da te) hanno in comune
>l'utente Amministratore che č l'utente a cui Access fa riferimento SALVO
>DIVERSA ED ESPLICITA INDICAZIONE.
HO CAPITO!!!!!:-)))))))))))
Allora non sono proprio de coccio!:-)))
Grazie!
Luciano


title: Sicurezza: qualcosa mi sfugge...

text:
Voltolini ha scritto nel messaggio ...
>Credo che la tua preoccupazione era l'automatizzazione di tutto o sbaglio?
No, piu' che altro mi sfuggiva la relazione fra MDB ed MDW.
Grazie.
Luciano


title: Sicurezza: qualcosa mi sfugge...

text:
Stefano Bettini wrote:
> Federico Luciani <
fluc...@paperino.libero.it
> wrote in message
> > L'alternativa all'uso di un mdw e' svilupparsi un sistema
> > di accessi in proprio, ma ne vale la pena?
>
> Eccome!
> Solo un sistema *tuo* ti garantisce le potenzialità e la flessibilità
> richieste dalla *tua* applicazione.
Hai ragione, intendevo dire che dipende da livello di
sicurezza che si vuole implementare.

> Senza contare la rottura di balle evitata di dover distribuire un
> tuo system.mdw, di dover fare link strani, delle telefonate del
> cliente perchè ha scombinato lo shortcut e non va + un accidenti
> ecc. ecc......
> Bye, Ste
Forse i miei clienti sono piu' bravi, visto che non ho mai
avuto problemi di questi tipo! :-))



title: Sicurezza: qualcosa mi sfugge...

text:
Luciano wrote:
> Federico Luciani ha scritto nel messaggio
> >Forse ci vuole un chiarimento!
>
> Okay, ora ci sono, grazie!:-)
>
> >Onestamente non capisco dove sta il problema! Se non vuoi
> >farglielo fare a mano, ci sono varie alternative per creare
> >uno shortcut:
> >- Setup wizard di office (se possiedi ODE)
> >- File batch di windows (vbscript)
> >- Un mdb che lo crea e si chiude
> >- ecc
> >
> >L'alternativa all'uso di un mdw e' svilupparsi un sistema
> >di accessi in proprio, ma ne vale la pena?
>
> La mia situazione e' questa:
> Voglio che il BE non sia apribile in nessun modo da chiunque, neppure
> (soprattutto) per la lettura dei dati.
> Nel FE deve essere protetto il codice e la struttura di ogni oggetto,
> nonche' la possibilita' di crearne di nuovi.
> A questo punto mi chiedo:
> mi conviene collegare e scollegare le tabelle
> ogni volta che mi servono piuttosto che riallegarle all'avvio (per maggiore
> sicurezza,intendo)? La proprieta' delle tabelle connect accetta user e PW?
IMHO non ha molto senso, le tabelle devono essere allegate;
chi non e' autorizzato a vederle di sicuro non e'
autorizzato a riallegarle!
> Oppure mi apro il BE di volta in volta da codice e faccio i miei bei Select
> direttamente sul BE per creare i recordset?
> Saluti.
> Luciano
In generale dipende da cosa fa l'applicativo in questione,
tieni presente che in questo modo perdi tutta la
flessibilita' che access ti mette a disposizione.
Se l'applicativo serve solo a far inserire dei nuovi
records e non alla visualizzazione, allora potrebbe essere
una buona idea (fai tutto via codice e non alleghi le tab,
etc.), ma a questo punto io passerei a svilupparlo in VB o
Delphi e non in access (punto di vista del tutto
personale)!!



title: Sicurezza: qualcosa mi sfugge...

author: Giorgio B.

text:
Luciano <
mc5...@mclink.it
> wrote in message 8atjr8$g95$1...@news.mclink.it...
>
> Giorgio PS ha scritto nel messaggio <8ar6fn$ble$
1...@pinco.nettuno.it
>...
>
> >Allora sei proprio de coccio :)))
>
>
> Ecco, questo e' il ringraziamento per averti aiutato migliaia (dico
> MIGLIAIA!) di volte!!!:-))))
>
> >Questo accade perchè nel db vengono memorizzate le associazioni tra
utente
> > e permessi e nel file mdw i soli utenti.
> >I due file mdw (quello originale e quello creato da te) hanno in comune
> >l'utente Amministratore che è l'utente a cui Access fa riferimento SALVO
> >DIVERSA ED ESPLICITA INDICAZIONE.
>
>
> HO CAPITO!!!!!:-)))))))))))
> Allora non sono proprio de coccio!:-)))
> Grazie!
>
> Luciano
>
:-)))))))


title: Sicurezza: qualcosa mi sfugge...

text:
Luciano <
mc5...@mclink.it
> wrote in message 8atjra$g95$3...@news.mclink.it...
>
> La mia situazione e' questa:
> Voglio che il BE non sia apribile in nessun modo da chiunque, neppure
> (soprattutto) per la lettura dei dati.
> Nel FE deve essere protetto il codice e la struttura di ogni oggetto,
> nonche'
> la possibilita' di crearne di nuovi.
>
1) Implementa un nuovo "owner" x *tutti* gli oggetti db sia del FE che del
BE,
2) passa Admin nel gruppo Utenti e negagli i permessi di creazione nuovi
oggetti
3) basa tutta la tua procedura su delle query eseguite con la
WithOwnerAccess
Ovviamente non dovari distribuire alcun system.mdw, le installazioni normali
di Access entreranno automaticamente come Admin e finiranno perciň nel
gruppo "Utenti" senza bisogno di fare alcunchč.
Se implementi anche la "criptazione" del db sarai allo "stato dell'arte"
della
sicurezza in Access, di + al momento non č assolutamente possibile fare.
Bye, Ste


title: Sicurezza: qualcosa mi sfugge...


title: Sicurezza: qualcosa mi sfugge...

author: Paul

text:
devi crearti un altro *.mdw personalizzato per quel db che vuoi
proteggere.
vai in start-esegui-wrkgadm.exe
lě crei un nuovo .mdw e applichi la sicurezza utente con questo mdw
attivo
poi risetti il system.mdw originale
per avviare il tuo db devi crearti un collegamento che richiami il tuo
.mdw anzichč quello di default:
"C:\Programmi\Microsoft Office\Office\MSACCESS.EXE" /wrkgrp
c:\database\protetto.mdw c:\database\database.mdb



title: #Nome? in Applicazione SQL Server

author: lucianab64 on libero

text:
Scusate l'oggetto poco chiaro della mail.
Il problema č:
Installando un applicativo, apparentemente funzionante in locale ambiente
W98+A2000+ SQL Server 7.0, su un sistema analogo


title: #Nome? in Applicazione SQL Server

text:
lucianab64 on libero <
lucia...@libero.it
> wrote in message
HuNp6.127128$Y93.
3108079
@news.infostrada.it...
Scusate l'e-mail inviata accidentalmente non completa :-)
CONTINUA ...
Installando un applicativo, apparentemente funzionante in locale su
W98+A2000+ SQL Server 7.0, su un sistema in rete analogo con W2000,
è successo che alcuni campi dell'applicativo mi diano #Nome?.
Come mai?
Dipende forse da qualche impostazione del sistema? A che livello?
Qualcuno ha qualche idea?
Grazie.
Luciana


title: #Nome? in Applicazione SQL Server

author: Antonio Biso

text:
lucianab64 on libero <
lucia...@libero.it
> wrote in message
zyNp6.127151$Y93.
3108683
@news.infostrada.it...
>
> lucianab64 on libero <
lucia...@libero.it
> wrote in message
> HuNp6.127128$Y93.
3108079
@news.infostrada.it...
>
> Scusate l'e-mail inviata accidentalmente non completa :-)
>
> CONTINUA ...
> Installando un applicativo, apparentemente funzionante in locale su
> W98+A2000+ SQL Server 7.0, su un sistema in rete analogo con W2000,
> č successo che alcuni campi dell'applicativo mi diano #Nome?.
Immagino che siano alcuni CONTROLLI dell'applicativo, in una maschera, che
ti diano quell'errore.
I CONTROLLI saranno associati a dei CAMPI o usano dei CAMPI per fare dei
calcoli. Evidentemente questi CAMPI non sono piů rintracciati. L'unica idea
che mi viene in mente č che per qualche motivo i riferimenti a quei campi
sono cambiati, ma bisognerebbe vedere dove e perchč
Antonio


title: #Nome? in Applicazione SQL Server

text:
> > Installando un applicativo, apparentemente funzionante in locale su
> > W98+A2000+ SQL Server 7.0, su un sistema in rete analogo con W2000,
> > č successo che alcuni campi dell'applicativo mi diano #Nome?.
>
> Immagino che siano alcuni CONTROLLI dell'applicativo, in una maschera, che
> ti diano quell'errore.
> I CONTROLLI saranno associati a dei CAMPI o usano dei CAMPI per fare dei
> calcoli. Evidentemente questi CAMPI non sono piů rintracciati. L'unica
idea
> che mi viene in mente č che per qualche motivo i riferimenti a quei campi
> sono cambiati, ma bisognerebbe vedere dove e perchč
>
> Antonio
Grazie della conferma. Pensavo anch'io qualcosa del genere. Controllero' e
ti faro sapere.
Luciana


title: Query con riferimento allo stesso campo

text:
Salve... ho questo problema: In un'anagrafica devo gestire un codice
"area". Per ogni record ho la possibilità di inserire 4 di questi
codici, ma potrei avere anche dei record in cui non è inserito neanche
un codice. In un'altra tabella ho un campo con la lista dei codici
possibili e un campo con la descrizione relativa. Dovrei produrre una
query che nei campi dell'anagrafica mi mostra la descrizione del
codice, senza visualizzare il codice stesso. Dopo aver collegato i
campi codice dell'anagrafica con quelli della tabella codici se faccio
partire la query mi mostra solo i record in cui tutti e 4 i campi sono
compilati, mentre io vorrei vedere anche quelli in cui ho 3 o meno
codici inseriti...
Nella speranza di essere stato chiaro nell'esposizione, confido nel
vostro aiuto!
Grazie


title: Query con riferimento allo stesso campo

author: Roberto dalla campagna

text:
<
alcol...@gmail.com
> ha scritto nel messaggio
news:1183684107.1...@q75g2000hsh.googlegroups.com...

Creati una query nella quale le due tabelle siano in Inner Join sul codice
area e poi in essa visualizza il codice, preso indifferentemente da una
delle due tabelle, e/o la descrizione presa dalla seconda tabella.
Comunque in una maschera o report puoi associare al campo che contiene il
codice area una casella combinata; così facendo agevolerai l'introduzione
del dato ed inoltre, dopo la scelta, visualizzerai la descrizione invece che
il codice, anche se poi in tabella verrà memorizzato il codice.
>Grazie
--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------


title: [Semi OT]Rapporti con il committente, consiglio ( descrizione lunghetta...)

text:
Ciao a tutti, a sto giro nessuna domanda tecnica ma piuttosto un bel
consiglione grosso come una casa....
Situazione:
Il committente (tempo fa) mi chiede di far funzionare un certo servizio
senza apporre vincoli di nessun tipo. Io accetto e vedo che effettivamente
il servizio potrebbe essere mooolto migliorato e di mia iniziativa (quindi
nessun riferimento contrattuale a nulla) mi creo una nuova struttura di
database mooolto più funzionale con una serie di valori aggiunti peraltro
non presenti in precedenza (es. reportistica ed altro ).
Il tutto funziona (ripeto , non ero e non sono obbligato ad utilizzare il
mio sistema) con discreta soddisfazione generale.
Ora il mio contratto è in scadenza ma potrebbe essere rinnovato (solo per la
manutenzione),ne ho un altro in scadenza tra circa 4 mesi (sempre con loro)
e  contestualmente il committente mi propone l'idea di un progetto di +
ampio respiro per vedere di riuscire ad integrare le varie tecnologie
aziendali (bello, penso io , vuol dire che nel mio piccolo funziono!!!)ma mi
chiede, prima di prendere una decisione in merito alla mia assunzione in
azienda(decisione peraltro non sicura perchè siamo  tre ingegneri in
ballottaggio) , di vedere la struttura logica del mio database per (secondo
il capo) poter valutare le possibilità di integrazione con ciò che è già
presente in ditta, il tutto nel nome del reciproco rapporto di fiducia.
Ora, il più e il meglio della mia applicazioncina è la struttura dei dati e
non vorrei che, vedendone l'astrazione logica che io ne ho dato (e che ho
definito nella struttura delle tabelle) , poi  se la ricostruiscano e mi
salutino in maniera + o - elegante... d'altronde la leva che potrebbero
farmi sugli altri due contratti mi sembra palese....
Che fo' ????????????????
A me sembra un pochino troppo chiedere i trucchi del mestiere senza
assicurare niente in cambio....
Sono ben graditi commenti , pareri , consigli , esperienze ....
Ciao,
Alex


author: Emyr

text:
On Fri, 28 Jun 2002 07:33:41 GMT, "Alex3man" <
alex...@virgilio.it
>
wrote:

dubito che tu abbia inventato qualcosa di nuovo che gli altri
ingegneri non sappiano rifare o che il committente riesca a capire la
struttura del database da qualche discussione in generale
sull'argomento per vederne i possibili sviluppi.
Personalmente consiglio di mettersi in mostra cercando di convincere
il committente delle proprie qualità ricordando in fondo che è suo
vantaggio tenere il promotore originale di un idea che quasi
sicuramente la porta avanti con maggior cognizione di causa e
velocità.
facci sapere com'è andata.
Saluti.
Emanuele.


author: Massimiliano Amendola  kksrl

text:
"Emyr" <
fan...@lavoro.com
> ha scritto nel messaggio
news:4kdohucchnnpmv5at...@4ax.com...

Concordo appieno con Emanuele; anch'io ho fatto così e ne ho ricevuto
vantaggi e no. Il titolare invece dopo poco ha capito che è stato molto
intelligente e che gli vale la pena.
ciao MAssimiliano


text:
Innanzi tutto ciao a tutti,
> > dubito che tu abbia inventato qualcosa di nuovo che gli altri
> > ingegneri non sappiano rifare
Il problema non è la capacità (nonostante i numerosi corsi di autostima non
sono certo l'unico a pensare :-)) ma la voglia e l'incentivazione a fare
> > o che il committente riesca a capire la
> > struttura del database da qualche discussione in generale
> > sull'argomento per vederne i possibili sviluppi.
il problema è che la persona preposta a controllare è tecnicamente
competente (quindi in grado di afferrare); ma anche lì la voglia di fare
lascia sempre a desiderare... inoltre la persona è sicuramente in grado di
sfruttare le idee  nel caso possano tornargli utili.
Di modi per risolvere il solito problema ce ne saranno sì e no qualche
decina , però poi vanno messi in pratica!!!
La sensazione è che, per evitare di utilizzare risorse (e quindi perdere
tempo e denaro) vogliano ottenere l'idea da me già "preconfezionata"
salvo poi salutarmi senza nessun compenso.
Non mi dà noia il fatto che qualcun'altro risolva il problema (e poi anche
se mi desse noia non è che ci posso fare niente, ovviamente) ma che chiedano
a me di spiegargli come ho fatto senza nessuna contropartita.
> > Personalmente consiglio di mettersi in mostra cercando di convincere
> > il committente delle proprie qualità ricordando in fondo che è suo
> > vantaggio tenere il promotore originale di un idea che quasi
> > sicuramente la porta avanti con maggior cognizione di causa e
> > velocità.
> > facci sapere com'è andata.
>
Ho avuto la fortuna di poter lavorare con persone che hanno molto apprezzato
ciò che ho fatto ed indirettamente la pubblicità è arrivata alle orecchie
dei capi , ma il problema è che c'è sempre qlcuno che cerca di trarre
beneficio (merito, soldi , etc ) dal sudore e dalle nottate di studio degli
altri e a me questo rompe un po'....
> Concordo appieno con Emanuele; anch'io ho fatto così e ne ho ricevuto
> vantaggi e no. Il titolare invece dopo poco ha capito che è stato molto
> intelligente e che gli vale la pena.
Tra il capo ed il "padrone"  da me c'è un po' di differenza (nel senso che
non sono la solita persona) ed il capo potrebbe cercare di "abbellirsi" con
il mio lavoro con il minimo sforzo ( ed il massimo rendimento)
> > Saluti.
> > Emanuele.
> ciao MAssimiliano
Ciao ed ancora grazie, spesso è molto utile riuscire a far due chiacchiere
con qlcuno che in certe situazioni è già passato!
A presto
Alex3man


text:
[cut]
> Tra il capo ed il "padrone"  da me c'è un po' di differenza (nel senso che
> non sono la solita persona) ed il capo potrebbe cercare di "abbellirsi"
con
> il mio lavoro con il minimo sforzo ( ed il massimo rendimento)
>
Salvo poi essere spaesato quandosuccede o fai succedere un casino
ciao MAssimiliano


title: Query: impostare un intervallo data su due campi

author: facso

text:
...forse l'oggetto non è chiarissimo. Mi spiego...
Ho un report (il solito) che si basa sui parametri impostati in una
maschera non associata. Su questa vorrei aggiungere due caselle
combinate che abbiano come origine riga una serie di date derivanti,
però, da due campi appartenenti ad una medesima tabella. Vorrei,
insomma, un unico elenco di date che derivi dall'unione dei due campi.
Le date in questione vengono immesse nel database tramite due maschere
diverse.
Ora..
Mi piacerebbe che le caselle combinate prendessero (entrambe) la data
più vecchia e quella più recente come limiti (credo DMin e DMax).
Veniamo alla parte più tosta (almeno per me)...
Vorrei che la query andasse a ricercare prima il valore (la data)
contenuto nel [campo2] (se può essere d'aiuto, quando esiste sempre
maggiore del [campo1]), se questo è Null, allora andasse a ricercare
il valore contenuto nel [campo1] (ovviamente dello stesso record).
Inoltre..
Può succedere che non sempre venga utilizzato questo criterio per
filtrare il report. Voglio dire che posso anche decidere di non
includere nella ricerca i paremetri delle date anzidette (e quindi
includere nel report anche i valori Null).
Chissà se sono stato chiaro..


author: Sib

text:
"facso" <-
fac...@libero.it
> ha scritto nel messaggio
> ...forse l'oggetto non è chiarissimo. Mi spiego...
>
> Ho un report (il solito) che si basa sui parametri impostati in una
> maschera non associata. Su questa vorrei aggiungere due caselle
> combinate che abbiano come origine riga una serie di date derivanti,
> però, da due campi appartenenti ad una medesima tabella. Vorrei,
> insomma, un unico elenco di date che derivi dall'unione dei due campi.
cut
prova una UNION (vedi help)
Sib


text:
"Sib" <si...@SPAMiol.it> wrote in message news:<qlHDa.76334$
g92.1...@news2.tin.it
>...

UNION forse mi risolverebbe il problema dell'elenco unico.. e tutto il resto?


title: Recupero dati con query parametrica basata su valori maschera.

author: SB

text:
W07
A2013

Buonasera a tutti,

ho creato una maschera (Main) senza abbinamento ad una origine dati i cui campi, tutti caselle combinate, vengono recuperati tramite query per darmi la possibilità di filtrare una seconda maschera (InputTable) che recupera i dati attraverso una query parametrica i cui criteri dovrebbero essere i valori inseriti nella prima maschera.
Il fatto è che se nella query inserisco i criteri per tutti i campi da testare, la maschera InputTable viene filtrata solo se tutti i campi di ricerca impostati in Main sono popolati; se anche solo uno di essi non lo è, il risultato è una maschera vuota.

Qualche consiglio?

Grazie.


author: Karl Donaubauer

text:
Salve,

Sb ha scritto:
> W07
> A2013
>
> ho creato una maschera (Main) senza abbinamento ad una origine dati i cui campi, tutti caselle combinate, vengono recuperati tramite query per darmi la possibilità di filtrare una seconda maschera (InputTable) che recupera i dati attraverso una query parametrica i cui criteri dovrebbero essere i valori inseriti nella prima maschera.
> Il fatto è che se nella query inserisco i criteri per tutti i campi da testare, la maschera InputTable viene filtrata solo se tutti i campi di ricerca impostati in Main sono popolati; se anche solo uno di essi non lo è, il risultato è una maschera vuota.

Dipende della quantità di caselle/parametri. Per poche caselle vedi
http://www.donkarl.com/it?FAQ3.14
 .

Per molti parametri è meglio costruire la stringa SQL della query con VBA.

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

Access Lobby:
http://www.AccessDevelopers.org


text:

Grazie Karl.
Cosa c'è che non va, ad esempio, per due parametri solo, nel seguente codice?

WHERE (((Input_Table.Season)=[Maschere]![Main]![Season_Search] Or (Input_Table.Season) Is Not Null) AND ((Input_Table.Supplier)=[Maschere]![Main]![Supplier_Search] Or (Input_Table.Supplier) Is Not Null));

qualsiasi dato inserisca, mi restituisce tutti i record.

Grazie


text:
Sb ha scritto:
> Karl Donaubauer ha scritto:
>>> W07
>>> A2013
>>>
>>> ho creato una maschera (Main) senza abbinamento ad una origine dati i cui campi, tutti caselle combinate, vengono recuperati tramite query per darmi la possibilità di filtrare una seconda maschera (InputTable) che recupera i dati attraverso una query parametrica i cui criteri dovrebbero essere i valori inseriti nella prima maschera.
>>> Il fatto è che se nella query inserisco i criteri per tutti i campi da testare, la maschera InputTable viene filtrata solo se tutti i campi di ricerca impostati in Main sono popolati; se anche solo uno di essi non lo è, il risultato è una maschera vuota.
>>
>> Dipende della quantità di caselle/parametri. Per poche caselle vedi
>>
http://www.donkarl.com/it?FAQ3.14
 .
>>
>> Per molti parametri è meglio costruire la stringa SQL della query con VBA.
> ...
> Cosa c'è che non va, ad esempio, per due parametri solo, nel seguente codice?
>
> WHERE (((Input_Table.Season)=[Maschere]![Main]![Season_Search] Or (Input_Table.Season) Is Not Null) AND ((Input_Table.Supplier)=[Maschere]![Main]![Supplier_Search] Or (Input_Table.Supplier) Is Not Null));
>
> qualsiasi dato inserisca, mi restituisce tutti i record.

Interpretazione interessante del mio articolo. ;-)

Invece prova così:

WHERE (Input_Table.Season=[Forms]![Main]![Season_Search] Or
[Forms]![Main]![Season_Search] Is Null) AND
(Input_Table.Supplier=[Forms]![Main]![Supplier_Search] Or
[Forms]![Main]![Supplier_Search] Is Null)



text:

Grazie ancora,

tutto a posto ora.


title: AIUTO!!!! Non importa dati da Excel

author: AER

text:
Salve.
Access 2k non importa dati esterni diversi dai formati di Access stesso (né
xls né txt ad esempio).
Ho già rimosso tutte le installazioni di Office (con il tool del RK) e
reinstallato Office, ma continua.
Potete aiutarmi?
Grazie.
Massimiliano


title: conversione campo

author: cumenda

text:
Ciao a tutti,
vorrei convertire il campo data di una tabella dal formato
gg/mm/aaaa al formato aaaammgg
come posso fare senza, naturalmente,
perdere i dati? Che formato devo impostare?
Grazie e ciao
cumenda
--------------------------------
Inviato via
http://usenet.iol.it


title: conversione campo

text:
forget it... già fatto.
scusate :-(



title: adattamento altezza celle automatico scrivendo il testo

author: mario rossi

text:
buongiorno a tutti,

qualcuno sa come potrei avere dei campi caselle di testo in visualizzazione tabellare in modo che digitando testo che và oltre la larghezza del campo alzi automaticamente l'altezza della cella adattandosi alla lunghezza del testo digitato?

Grazie.


author: BFS

text:

non puoi farlo
puoi controllare solo l'altezza di tutte le righe.

quello che (ti) servirebbe è classico grid control
gia presente in visual basic preistorico (msflexgrid.ocx) e mai
pervenuto in 25 anni in MS Access

il grid control permette di agire su ogni singola cella sia in
dimensioni che in formattazione.

in alcune applicazioni access che ancora girano benone io avevo usato questo

http://www.vbaccelerator.com/home/vb/Code/Controls/S_Grid_2/S_Grid_2/article.asp

vedi se ancora disponibile altrimenti devi cercare ocx di terze parti

BFS


text:

... "e mai pervenuto in 25 anni in MS Access" pazzesco!!!

Provo il tuo link grazie.


author: Simone Calligaris

text:
>
> Provo il tuo link grazie.

Lascerei perdere gli OCX: troppo alti i rischi che smettano di funzionare da una versione all'altra di Winsozz e/o Access (specie a 64 bit).
Come fanno molti, puoi semplicemente implementare una formettina di dettaglio da aprire (doppio click o combinazioni di tasti) sulle textboxes dal testo lungo.
Oppure puntare sulla visualizzazione DataSheet che, con uno sforzo che non gli rovina la giornata, permette all'utente di alzare l'altezza della griglia.

Saluti


text:

Questa è nativa:

RunCommand acCmdZoomBox

@Alex
6


text:

perbacco! e come si usa?


text:
> perbacco! e come si usa?
7

Su Doppio Click lo lanci...

@Alex


author: RobertoA

text:

http://access.mvps.org/access/RunCommand/codeex/179.htm


title: Re: Funzione access per trovare tabella in database SQL

text:
<
marco....@gmail.com
> ha scritto nel messaggio
news:1172052832.1...@v33g2000cwv.googlegroups.com...
> Ciao a tutti !
> Ho un progetto in access (adp) e ho bisogno di verificare se esiste o
> meno una tabella nel mio database SQL..
> mi serve quindi una funzione in access per trovare tabella in database
> SQL
>
> sapete come fare??????
In access si scorre l'insieme tabledefs.
Oppure si prova a referenziare in qualche modo quella tabella e si
intercetta l'errore se non esiste
Antonio


author: giorgio rancati

text:
<
marco....@gmail.com
> ha scritto nel messaggio
news:1172052832.1...@v33g2000cwv.googlegroups.com...
> Ciao a tutti !
> Ho un progetto in access (adp) e ho bisogno di verificare se esiste o
> meno una tabella nel mio database SQL..
> mi serve quindi una funzione in access per trovare tabella in database
> SQL
Ciao Marco,
un paio di metodi da provare nella finestra immediata di VBA
1)
----
? Currentdata.AllTables.Item("NomeTabella").Name
----
rende il nome della tabella se esiste o un errore se non esiste.
2) Dlookup
----
? Dlookup("TOP 1 OBJECT_ID('NomeTabella')","sysobjects")
----
riceverai l'ID della tabella se esiste o NULL se non esiste.
Ciao
--
Giorgio Rancati
[Office Access MVP]