Metodo FindFirst...........

di il
6 risposte

Metodo FindFirst...........

Salve a tutti, spiego subito cosa vorrei ottenere:
ho un database, Access 2003, una tabella costituita da 3 campi, ID, DATA e DESCRIZIONE.
Nella maschera ho inserito il ControlCalendar dove tutto in automatico, a nuovo record, mi visualizza la data.
Tutto bene ma per spostarmi, velocemente, su una determinata data, ho inserito una casella combinata, che mi visualizza solo data, con ID "nascosta" ma associata come colonna 1, e il tutto funziona e mi chiedevo come ottenere la stessa cosa scegliendo proprio la data dalla visualizzazione del controllo Calendar? Ho visto che non è possibile perchè se cambio la data mi aggiorna quel record alla data che ho "pigiato". Allora, ho inserito un datapicker e gli ho messo la stessa routine della casella combinata: [CODE]Private Sub cercadata_AfterUpdate() Dim crit As String crit = "[id]= " & Me.cercadata Me.RecordsetClone.FindFirst crit Me.Bookmark = Me.RecordsetClone.Bookmark End Sub Ora, nella casella combinata, la "ricerca" sull'ID funziona ma non sembra così per la data: [CODE] Private Sub ricdata_Updated() Dim ric As String ric = "[data]= " & Me.qualsiasi controllo calendario Me.RecordsetClone.FindFirst ric Me.Bookmark = Me.RecordsetClone.Bookmark End Sub Insomma, una ricerca veloce di un record, tramite il criterio di data, "visuale"
Nella speranza che sia stato chiaro, anticipatamente ringrazio e complimenti per questo straordinario sito

6 Risposte

  • Re: Metodo FindFirst...........

    Per a data la SINTASSI è diversa... serve adattarla alla data.
    Fossi in te poi apporterei queste migliorie.
    
    Private Sub cercadata_AfterUpdate()
        Dim ric As String
        ric = "[data]= " & cstr(clng(Me.qualsiasi controllo calendario))
        With Me.RecordsetClone
            .FindFirst ric
            If Not .NoMatch then 
                Me.Bookmark = .Bookmark
            Else
                MsgBox "Data non trovata"
            End If
        End With
    End Sub
  • Re: Metodo FindFirst...........

    Grazie Alex da come mi hai suggerito, il modo c'è, forse bisognerebbe "formattare" adeguatamente il valore data che fornisce il controllo calendario o sbaglio? Comunque proverò Grazie ancora
  • Re: Metodo FindFirst...........

    Grazie per questa splendida istruzione [CODE]ric = "[data]= " & cstr(clng(Me.qualsiasi controllo calendario)) Purtroppo, non mi funge in quanto, dalle proprietà di questi oggetti ActiveX, controlli calendari etc. etc., manca proprio l'evento "AfterUpdate", e non funziona sugli eventi "attivato", "invio", "aggiornato", etc. etc.
    Ho provato a creare l'evento "AfterUpdate" ma non funziona lo stesso.
    Grazie per la squisita attenzione
  • Re: Metodo FindFirst...........

    MarkRed ha scritto:


    nelle proprietà manca proprio un "AfterUpdate"
    AfterUpdate (che io sappia) è un "evento", non una "proprietà".
  • Re: Metodo FindFirst...........

    MarkRed ha scritto:


    Grazie per questa splendida istruzione [CODE]ric = "[data]= " & cstr(clng(Me.qualsiasi controllo calendario)) Purtroppo, non mi funge in quanto, dalle proprietà di questi oggetti ActiveX, controlli calendari etc. etc., manca proprio l'evento "AfterUpdate", e non funziona sugli eventi "attivato", "invio", "aggiornato", etc. etc.
    Ho provato a creare l'evento "AfterUpdate" ma non funziona lo stesso.
    Grazie per la squisita attenzione
    Infatti nessuno userebbe un controllo Calendario in Access... basta che il Controllo TextBox sia definito come Formato "Data Generica" e dalla versione A2007 esce il Calendario, da li su Button applica si usa l'evento Click.
    Gli Activex in Access sono da evitare.
  • Re: Metodo FindFirst...........

    Grazie per la dritta. Allora, installando Access 2007, ho salvato "capra e cavoli", nel senso che posso avere il "vecchio" CalendarControl" e per la ricerca di una data e successivo "focus" su quel record, ho inserito il controllo di una casella di testo impostandolo come "DataGenerica" e così mi apre il calendario e scelgo la data. Per far scattare "AfterUpdate", devo solo premere il tabulatore perchè non c'è verso che dopo aver scelto la data, il tutto va in automatico. Fa niente Grazie ancora
Devi accedere o registrarti per scrivere nel forum
6 risposte