Pannello di Controllo Moderatore ]

Formulario con Query con più ricerche

Discussioni sulle caratteristiche di database

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 4 agosto 2020, 16:54

come devo fare per creare la macro? E ovviamente devo cambiare i campi della tabella storico come hai fatto tu? Mi sembra che mettesti string la colonna termine turno
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 11:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » martedì 4 agosto 2020, 17:34

mirabellomusic ha scritto:come devo fare per creare la macro?

viewtopic.php?f=29&t=10531
Pagine iniziali ...

mirabellomusic ha scritto:E ovviamente devo cambiare i campi della tabella storico

charlie ha scritto:Ho dovuto apportare alcune modifiche:
  • Il formulario 'Inserimento' è stato abilitato alla modifica dei record
  • Nella tabella 'Storico' sono stati modificati alcuni tipi di campo perché errati (es. testo per numeri) o per esigenze di esecuzione dalla macro ('Termine turno' è ora tipo testo, ma per indicare l'ora dovrebbe andare bene lo stesso).
  • È stata eliminata la 'Digitazione necessaria' di tutti i campi
  • Sono state eliminate le relazioni fisse fra tabelle
charlie
macOS 10.12 Sierra: Open Office 4.1.8 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6994
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » mercoledì 5 agosto 2020, 9:45

Sono state eliminate le relazioni fisse fra tabelle. Cosa dovrei fare qui?
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 11:26

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » mercoledì 5 agosto 2020, 10:00

Ho cambiato alcuni nomi campi nella macro che erano sbagliati, ora mi da questo errore (ho eliminato tutte le relazioni fra tabelle)... non so cosa possa essere
Allegati
Annotazione 2020-08-05 110007.png
Annotazione 2020-08-05 110007.png (7.88 KiB) Osservato 223 volte
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 11:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » mercoledì 5 agosto 2020, 10:34

Di solito è unmessaggio che si riferisce alla modifica di un campo relazionato con un'altra tabella. Sicuro di aver cancellato le relazioni?
charlie
macOS 10.12 Sierra: Open Office 4.1.8 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6994
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Formulario con Query con più ricerche

Messaggioda charlie » mercoledì 5 agosto 2020, 13:44

Nuova versione con codice macro suggerita da @F3K Total sul forum inglese (che ringrazio :bravo: ).
Funziona subito con qualsiasi tipo di campo (testo, decimale, intero, data, ora) senza necessità di controllare i nomi campo e senza eliminare le relazioni fra le tabelle.
Funziona direttamente sul tuo file originale.

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub CopyRecord_F3K
    oForm = thisComponent.drawpage.forms.MainForm
    oColumns = oForm.Columns
    dim aData (1,oColumns.count - 1) as Variant
    for i = 1 to oColumns.count - 1 'Start at column 1 because Column 0 is the PK Autovalue, would lead to an error
        oColumn = oColumns(i)
        select case oColumn.TypeName
            case "VARCHAR"
                value = oColumn.getstring
            case "INTEGER"
                value = oColumn.getInt
            case "TIME"
                value = oColumn.getTime
            case "DATE"
                value = oColumn.getDate
            case "DECIMAL"
                value = oColumn.getDouble
        end select
       aData(0,i) = value
       aData(1,i) = oColumn.wasNull
    next i
    oForm.movetoInsertRow
    for i = 1 to oColumns.count - 1
        oColumn = oColumns(i)
        if aData(1,i) = true then    'the column was empty
            oColumn.updateNull
        else
        select case oColumn.TypeName
           case "VARCHAR"
               oColumn.updatestring(aData(0,i))
           case "INTEGER"
               oColumn.updateInt(aData(0,i))
           case "TIME"
               oColumn.updateTime(aData(0,i))
           case "DATE"
               oColumn.updateDate(aData(0,i))
           case "DECIMAL"
               oColumn.updateDouble(aData(0,i))
       end select
       endif
    next i
    oForm.InsertRow
End Sub
Allegati
Sala_operativa.odb
(63.06 KiB) Scaricato 20 volte
charlie
macOS 10.12 Sierra: Open Office 4.1.8 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6994
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Precedente

Torna a Base

Chi c’è in linea

Visitano il forum: Google [Bot] e 5 ospiti