[Risolto] Su Ricerca verifica nomi già inseriti

Discussioni sulle caratteristiche di database
Rispondi
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

[Risolto] Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

Buongiorno a tutti,

C'è una FUNZIONE, CRITERIO, o FORMULA all'interno di una Ricerca da mettere in una colonna "nomeLav"
per poter controllare al momento dell'inserimento, su Formulario, se ci sono nomi uguali?

Grazie
DERED
Allegati
NOMI_INSERITI_1.odb
(15.8 KiB) Scaricato 114 volte
Ultima modifica di DERED il venerdì 3 luglio 2015, 14:57, modificato 5 volte in totale.
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8954
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Su Ricerca verifica nomi già inseriti

Messaggio da charlie »

Ciao, non conosco la risposta (temo negativa) ma suggerisco che un ordinamento alfabetico della colonna faciliterebbe un eventuale controllo a vista.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

Ciao charlie,

Si gia' fatto ma pensavo ci fosse qualcosa per verificare i "doppioni" in inserimento.. peccato.

Grazie comunque.
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: Su Ricerca verifica nomi già inseriti

Messaggio da bydindi »

Ciao
Si può fare utilizzando una macro, allego un esempio

Paolo
Allegati
BusquedatodoOpartecampo.odb
(38.58 KiB) Scaricato 159 volte
OOo 4.1.1 su Windows Vista
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8954
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Su Ricerca verifica nomi già inseriti

Messaggio da charlie »

Ciao Paolo, la macro che hai postato, veramente interessante, non gira con LO, stranamente. Non è questione di livello di sicurezza, semplicemente non dà alcun effetto. In OO invece funziona. Ne sai il motivo?
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: Su Ricerca verifica nomi già inseriti

Messaggio da bydindi »

Ciao Charlie

Purtroppo non sò darti una risposta, non utilizzo Libre Office, potrebbe essere un problema di linguaggio SQL? visto che la macro fa riferimento ad una query.... l'ho buttata lì.... :(

Paolo
OOo 4.1.1 su Windows Vista
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

Veramente il codice funziona anche in LO,il problema è che non viene aggiornato il nuovo valore della query,piantate un paio di print in diversi punti e vedrete che il comando-SQL del form resta invariabile,
nonostante la chiamata del metodo reload.
Finché riceverò una risposta da Bugzilla ,ho modificato il codice in maniera che funzioni anche su LO,cosi la ricerca non è più necessaria,verrà modificato direttamente il comando SQL del nostro form.
-----------------------------------------------------------------------------------------------------
Un saluto a tutti.
Allegati
v2.odb
(18.44 KiB) Scaricato 133 volte
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto:Veramente il codice funziona anche in LO,
Grazie "vlad" è quello che mi serviva anche se lo devo adattare ma ci lavoro

Lavorandoci il risultato è che non funziona.... sicuramente sbaglio qualcosa.

Allego file

Grazie ancora
Dered.
Allegati
v2LaVendettaodb.odb
(16.6 KiB) Scaricato 110 volte
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

Grazie vladboscaneanu
dopo ore e ore funziona un pò macchinoso ma fà il suo lavoro cioè trova i nomi che già sono inseriti
resto comunque in attesa della risposta......
vladboscaneanu ha scritto: Finché riceverò una risposta da Bugzilla ,ho modificato il codice in maniera che funzioni anche su LO,cosi la ricerca non è più necessaria,verrà modificato direttamente il comando SQL del nostro form.
Un saluto e ancora grazie
DERED
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

Carissimo,sono un po impegnato questi giorni,se mi concedi qualche giorno ti faccio avere una macro che controlla direttamente i valori dei campi,nel database.Devi solo confermare se ti occorre una cosa del genere.
Saluti.
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto:Carissimo,sono un po impegnato questi giorni,se mi concedi qualche giorno ti faccio avere una macro che controlla direttamente i valori dei campi,nel database.Devi solo confermare se ti occorre una cosa del genere.
Saluti.
Ciao vlad
Certo che ti confermo ma fai con comodo tanto stò andando avanti con lo sviluppo di altri moduli

Grazie :super:
Dered
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

La soluzione è seguente:
--Dobbiamo eseguire comunque il comando che ti avevo dato nel altro topic,per bloccare i nomi doppi;
--tramite macro controlliamo e avvisiamo l'utente di un eventuale nome doppio.
------------------------------------------------------------------------------------------------------------------------
Quindi provando ad inserire "MARIA" nella tua tabella uscirà un messaggio di errore,mente il database non farà "entrare" il nuovo valore,grazie
al comando-SQL.
Spiegare le cose è il mio tallone d'Achille,resto comunque disponibile per ulteriori chiarimenti.
Saluti
Allegati
Elenco.odb
(22.1 KiB) Scaricato 130 volte
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto: Spiegare le cose è il mio tallone d'Achille,resto comunque disponibile per ulteriori chiarimenti.
Saluti
Grande vlad ti spieghi benissimo :bravo:
è perfetto adesso si che fà il controllo e ti dice che già esiste un nome uguale.
Mi sono permesso di cambiare la Tabella1 nello specifico il campo "NOME" da Testo(VARCHAR) a Testo(VARCHAR_IGNORECASE)
cosi nell'immisione dei dati "NOME" non distingue minuscolo/MAIUSCOLO ma controlla solo il nome.
Allego file

Ti ringrazio tanto e spero i poter ancora contare su un tuo aiuto (tuo tempo permettendo ;) )

DERED.
Allegati
Elenco_2.odb
(13.77 KiB) Scaricato 102 volte
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: [Risolto] Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

Ciao vlad,

Scusa ho cantato vittoria troppo presto, allora la macro funziona solo che ho trovato un "inconveniente" di procedura mi spiego
quando inserisci il nome nel campo la macro fà il controllo "SOLO" se premi il tasto "Aggiorna record" altrimenti premendo ENTER
per esempio inserisce il nome e non fà il controllo..... dire ad un "operatore" che non deve dare enter per verificare l'inserimento,
ma deve SEMPRE premere salva record, non mi pare un modo sicuro per verificare i nomi "doppi"
E poi nel mio DB ho inerito la macro controllando tutto quello che c'era da controllare ma non funziona per nessun motivo...
diciamo che a differenza del tuo file con una tabella e un form il mio c'è più roba ma il campo ricerca l'ho messo dentro un formulario
"MaiForm" stando attento a nome campo nome formulario ecc ecc. ma niente si pianta e a volte mi butta fuori dal DB. un casino :crazy:
Ora è tardi quindi allego file e se puoi darci un'occhiata te ne sarei grato.
La maschera dove c'è il campo controlla nomi è la "Verifica_AnaSociLav"

:crazy: :knock: :crazy: :knock:
DERED
Allegati
NEW_PROVA_30_18.odb
(103.35 KiB) Scaricato 93 volte
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

Non riesco a capire a quale evento hai abbinato la macro?
Il pulsante mi risulta scoperto dagli eventi.
Allegati
Cattura.PNG
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto:Non riesco a capire a quale evento hai abbinato la macro?
Il pulsante mi risulta scoperto dagli eventi.
Hai ragione ho abbinato la macro al pulsante ma il risultato è questo.
Allegati
Schermata.png
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

Abbiamo fatto entrambi due errore(forse io un po di più):
--Io nel codice dovevo aggiungere un error-capture,cosi era più facile per te di capire l'errore,in questo caso
suppongo che il campo di testo(tuo) non si chiama txtNOME,come previsto dal codice.
--Tu invece hai sbagliato,pensando che il codice del altro form può lavorare sul tuo esempio ,DIVERSO dal primo.
Conclusione:dai un'occhiata ai nomi dei campi,tabelle etc.Se proprio no ,me lo dici.
Ciao
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto:Abbiamo fatto entrambi due errore(forse io un po di più):
--Io nel codice dovevo aggiungere un error-capture,cosi era più facile per te di capire l'errore,in questo caso
suppongo che il campo di testo(tuo) non si chiama txtNOME,come previsto dal codice.
--Tu invece hai sbagliato,pensando che il codice del altro form può lavorare sul tuo esempio ,DIVERSO dal primo.
Conclusione:dai un'occhiata ai nomi dei campi,tabelle etc.Se proprio no ,me lo dici.
Ciao
Allora i campi mi sembrano corretti ma non so nella macro cosa legge quindi le due macro a confronto 1° la tua e poi la mia

Codice: Seleziona tutto

''''''''''''''''''''''''''
'vladboscaneanu@gmail.com'
''''''''''''''''''''''''''
Option Explicit
Const oForm="MainForm"'il nome del Form
Const oField="txtNOME"'nome del campo,in nostro caso il campo Nome
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Main
Dim oForm,ResultSet As Object
Dim oFieldText,oSQL As String
oForm=ThisComponent.DrawPage.Forms(oForm)
oFieldText=oForm.GetByName(oField).Text
oSQL="SELECT COUNT(NOME) FROM ""Tabella1"" WHERE NOME = '" & oFieldText & "'"
ResultSet=oForm.ActiveConnection.createStatement.executeQuery(oSQL)
ResultSet.next()
If (ResultSet.getInt(1)) > 0 Then
	MsgBox "Valore gia presente nella tabella",64,"Errore" 
End If
End Sub

Codice: Seleziona tutto

''''''''''''''''''''''''''
'vladboscaneanu@gmail.com'
''''''''''''''''''''''''''
Option Explicit
Const oForm="MainForm"'il nome del Form
Const oField="txtNomeLav"'nome del campo,in nostro caso il campo Nome
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Main
Dim oForm,ResultSet As Object
Dim oFieldText,oSQL As String
oForm=ThisComponent.DrawPage.Forms(oForm)
oFieldText=oForm.GetByName(oField).Text
oSQL="SELECT COUNT(NomeLav) FROM ""TabAnaSociLav"" WHERE NomeLav = '" & oFieldText & "'"
ResultSet=oForm.ActiveConnection.createStatement.executeQuery(oSQL)
ResultSet.next()
If (ResultSet.getInt(1)) > 0 Then
	MsgBox "Valore gia presente nella tabella",64,"Errore" 
End If
End Sub
E questi sono i dati inseriti E GLI ERRORI
Allegati
MIO_2.jpg
ERRORE_2.jpg
ERRORE.jpg
ERRORE.jpg (18.37 KiB) Visto 5349 volte
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Su Ricerca verifica nomi già inseriti

Messaggio da vladboscaneanu »

Purtroppo sei sfortunato: stai pescando tutti i bag di Base.
Il metodo

Codice: Seleziona tutto

GetByName
non funziona nel tuo esempio,con 4 form,cioè viene sempre restituito il primo form,Formulario,che normalmente non ha un campo
txtNomeLav.
Pero noi siamo forti(e fortunati,come dice Paolo Mantovani),quindi ho cambiato la strategia.Ora non serve più da indicare il
nome del Form.
Intanto lo segnalo come bug.
Ciao
Allegati
NEW_PROVA_v2.odb
(103.89 KiB) Scaricato 143 volte
LibreOffice ultima versione su Windows 10
Avatar utente
DERED
Messaggi: 64
Iscritto il: lunedì 27 aprile 2015, 10:52

Re: Su Ricerca verifica nomi già inseriti

Messaggio da DERED »

vladboscaneanu ha scritto:Purtroppo sei sfortunato: stai pescando tutti i bag di Base.

Pero noi siamo forti(e fortunati,come dice Paolo Mantovani),quindi ho cambiato la strategia.Ora non serve più da indicare il
nome del Form.
Intanto lo segnalo come bug.
Ciao
La fortuna è trovare persone capaci che ti aiutano, quindi grazie grazie grazie.
Ora funziona ed ho trovato il modo di verificare/inserire il nome e ho anche lasciato l'altro
controllo nomi per una verifica in più.
Lo estendo anche ai Clienti e Fornitori cosi il controllo è totale

Grazie vlad grazie Mantovani
DERED
P.S. Ora credo spero che posso mettere [Risolto] ..... aspetto un pò non si sà mai. :!:
LibreOffice Versione: 4.3.7.2
Win 7 32bit - Linux Mint 17
Rispondi