Access 2010

di il
14 risposte

Access 2010

Buonasera,
è la prima volta che scrivo ed ho un problema sulla maschera che ho creato e che non riesco a risolvere.
Ho 5 campi data e vorrei che quando le date inserite (es 20/04/2012) coincideranno con le date correnti arrivasse all'apertura della maschera un messaggio di avviso di scadenza con il nome del progetto (ogni record corrisponde ad un progetto specifico).
Qualcuno può aiutarmi a risolvere il mio problema?
Grazie

14 Risposte

  • Re: Access 2010

    Mi permetto di rispondere

    non si potrebbe costruire una query che filtrasse i record che hanno corripsondenza e vedere se il recordset ha record allora messaggio

    SELECT miaData FROM MiaTabella
    WHERE miaData=Date();

    o cosi direttamente

    SELECT miaData FROM MiaTabella
    HAVING Count(miaData)=Date();

    Fammi sapere
  • Re: Access 2010

    Grazie per la risposta ma non funziona o forse non ho capito come fare.
    Ho applicato la seconda opzione direttamente in maschera nel mio I campo data sostituendo miadata e miatabella rispettivamente con Scadenza1 e caricoprogetti ma mi restituisce Nome?.
    Ho sbagliato?
  • Re: Access 2010

    Copia la stringa SQL

    e vediamo dove c'e' errore.

    il nome del campo contiene spazi?
    meglio mettere [nome campo]

    saluti
  • Re: Access 2010

    Ciao.
    Hai risolto...?
    Comunque non ho capito bene...
    Ho 5 campi data e vorrei che quando le date inserite (es 20/04/2012) coincideranno con le date correnti
    Cosa significa esattamente ?
    Che in una Form (Maschera), ci sono 5 campi-data e che vorresti, quando la visualizzi, un avviso quando queste sono tutte = alla <data-corrente> ...?!
  • Re: Access 2010

    Dany ha scritto:


    Buonasera,
    è la prima volta che scrivo ed ho un problema sulla maschera che ho creato e che non riesco a risolvere.
    Ho 5 campi data e vorrei che quando le date inserite (es 20/04/2012) coincideranno con le date correnti arrivasse all'apertura della maschera un messaggio di avviso di scadenza con il nome del progetto (ogni record corrisponde ad un progetto specifico).
    Qualcuno può aiutarmi a risolvere il mio problema?
    Grazie
    Serve capire meglio prima perchè hai 5 Campi Data nella stessa tabella, cosa probabilmente corretta ma se non spiegato decisamente strano.
    Detto questo Puoi usare una funzione DCOUNT mettendo in OR le verifiche sui 5 Campi data in confronto con la tua Data di riferimento
    
    Dcount("*","NomeTabella","CampoData1=" & Clng(TuaData) & " OR CampoData2=" & clng(tuaData) & "......ecc")
  • Re: Access 2010

    luky1964 ha scritto:


    Ciao.
    Hai risolto...?
    Comunque non ho capito bene...
    Ho 5 campi data e vorrei che quando le date inserite (es 20/04/2012) coincideranno con le date correnti
    Cosa significa esattamente ?
    Che in una Form (Maschera), ci sono 5 campi-data e che vorresti, quando la visualizzi, un avviso quando queste sono tutte = alla <data-corrente> ...?!
    Sì esatto ma non so da che parte cominciare. Tutti gli altri suggerimenti non mi restituiscono ciò che vorrei, forse continuo a non capire. Potete essere più chiari per favore e cominciare dall'inizio?
    grazie grazie
  • Re: Access 2010

    Allora, restringendo la questione solamente a ciò che vorresti, la cosa è fattibile con poche righe di codice, ma dobbiamo chiarire almeno alcuni punti:
    - dici: ''...coincideranno con le date correnti...'', vorrai dire ''la data corrente...'' ?!
    - poi, da come scrivi, io te l'ho chiesto nel mio post e hai risposto di 'si', ma ti richiedo: devono coincidere tutte le date alla data corrente o basta che coincida anche solo 1 delle 5...?!
    - il tipo di avviso che vorresti: ti basterebbe una finestra di messaggio (Message-box) per cui ci dovresti premere il pulsante 'OK' per proseguire, o vorresti fa r apparire, es. nel corpo della Maschera, una scritta con il messaggio che vorresti, magari rossa...?.
    Appena saprò, ti posterò le poche istruzioni per realizzare quello che cerchi... almeno spero...
    Saluti.
  • Re: Access 2010

    Grazie per avermi risposto.
    Il messaggio di avviso deve riguardare tutte le scadenze che coincidono con la data attuale.
    Chiedo troppo se il messaggio di avviso contenesse il nome del progetto dove una o più delle 8 scadenze (tanti sono i campi in maschera) coincide con la data attuale.
    In sintesi:
    Mia maschera
    [campoNomeprogetto] [campo Scadenza1]
    [campo Scadenza2]
    etc
    Messaggio di avviso [campoNomeprogetto]
    Ancora grazie
  • Re: Access 2010

    Perdonami, ma sarò 'duro' ma non comprendo bene, prima avevi scritto
    Ho 5 campi data
    se non erro, comunque 5 o 8 non cambia niente...
    Ma non comprendo una cosa, correggimi se sbaglio, se hai una Form con cui visualizzi vari record di una Tabella, es.[Progetti], in questa Form hai i campi del record, tipo: [nome_progetto] e una serie di date, che immagino coincideranno con varie fasi della realizzazione di tale progetto...
    Ok, fino a quì...?!
    Che senso avrebbe, far apparire un messaggio con il 'Nome progetto' quando lo hai davanti scritto nel campo della maschera...?!
    Poi vorresti un messaggio che apparisse accanto alle date ? a mio avviso, potresti mettere un avviso che appare accanto ad ogni data che ha raggiunto la data corrente, anzi magari quando sia >= (uguale ad oggi ma anche passato oggi...?!)
    Ascolta non mi voglio 'arrendere' Ok ? Hai la possibilità di mettere allegati, invia la form/maschera di cui parli...anche sotto forma di immagine facendo uno screen-shot..., altrimenti rischiamo di non comprenderci...
    Saluti.
  • Re: Access 2010

    Se il messaggio di avviso appare accanto ad ogni scadenza devo andare a cercare qual'è la scadenza e qual'è il progetto e allora il messaggio ha poco senso.
    Se invece all'apertura della maschera ricevo il messaggio di avviso con il nome del progetto so subito di cosa di tratta[1][/img]
    Ho provato a inviarti la maschera come immagine ma non so se ci sono riuscita, forse per email sarebbe meglio.
    Grazie ancora per il tuo aiuto
  • Re: Access 2010

    Vediamo un po...
    Ti farò un esempio per un paio di date...:
    Ammettiamo che il campo collegato alla Tabella con il nome del progetto si chiami: [Nome_Prog] e che un paio delle date si chiamino: [Data_Scad1] e [Data_Scad2].
    Quando sei in visualizzazione struttura della maschera, premi Alt + F11 e dovrebbe apparirti l'ambiente del codice VBA.
    Avrai le varie routine separate da una riga, posizionati in fondo a tutte e incollaci questo codice:
    
    Private Sub Form_Current()
    On Error GoTo ERRORI
        If CDate([Data_Scad1]) = Date Then
                    MsgBox ("PROGETTO: " & [Nome_Prog] & Chr(13) & _
                    "HA LA DATA 1 IN SCADENZA!!!!")
        End If
    ' --- qua' puoi inserirne altri per ogni data..
        If CDate([Data_Scad2]) = Date Then
                    MsgBox ("PROGETTO: " & [Nome_Prog] & Chr(13) & _
                    "HA LA DATA 2 IN SCADENZA!!!!")
        End If
    ' ... ecc.ecc.
        Exit Sub
    ERRORI:
        ' --- si esce senza segnalazione di errori ---
    End Sub
    
    questo ti dovrebbe fare apparire un messaggio per 2 delle tue date, non dovresti far altro che replicarne per ogni data (per non spiegare cose piu' sofisticate).
    Prova...
    (Io ho Access 2003...)
  • Re: Access 2010

    Ho provato a fare come dici ma per entrare in visual basic sono andata sulle proprietà della maschera in genera evento e alla fine ho incollato il tutto modificando i nomi dei campi, ma non è apparso alcun messaggio inserendo ovviamente in un campo scadenza la data di oggi.
    L'alternativa che poi era l'idea iniziale a cui ho rinunciato perchè anche questa non sono riuscita a metterla in pratica è programmare un messaggio di posta elettronica che parta in automatico quando scadenza=data attuale. In verità cliccando su una scadenza (o anche all'apertura della maschera) ero riuscita ad impostare una cosa del genere.
    Apertura maschera=finestra con scritto "scadenza" cliccando ok apertura automatica di nuovo messaggio di outlook che raggiunge le persone interessate. Il problema è stato che tutto ciò avveniva a prescindere dalla data attuale.
    Sinceramente non so più come fare, forse mollo tutto.
    grazie cmq
  • Re: Access 2010

    Ciao, ho riprovato e funziona!!! ma solo per il primo record dove ho inserito la data attuale alla scadenza1. Ma se ho un'altra scadenza=data attuale in un altro record (altro progetto) non mi dà alcun messaggio. Questo è il codice che ho inserito
    Private Sub Form_Current()
    On Error GoTo ERRORI
    If CDate([Scadenza1]) = Date Then
    MsgBox ("PROGETTO: " & [Nome progetto] & Chr(13) & _
    "HA LA DATA 1 IN SCADENZA!!!!")
    End If

    If CDate([Scadenza2]) = Date Then
    MsgBox ("PROGETTO: " & [Nome progetto] & Chr(13) & _
    "HA LA DATA 2 IN SCADENZA!!!!")
    End If
    etc.
    E' così o ho sbagliato qualcosa?
  • Re: Access 2010

    Ho capito che il messaggio arriva non all'apertura della maschera ma quando si è sul record con scadenza=data attuale, ma così devo scorrere tutti i record.
    Posso fare una macro ma come la collego al codice?
Devi accedere o registrarti per scrivere nel forum
14 risposte