valori da combox ed inserirli in una altra tabella

Discussioni sulle caratteristiche di database
Rispondi
francy77
Messaggi: 1
Iscritto il: venerdì 10 settembre 2010, 23:00

valori da combox ed inserirli in una altra tabella

Messaggio da francy77 »

Ciao,
avrei bisogno di capire come fare per avere una casella combinata che mi visualizza alcuni valori e quando ne seleziono uno il forum lo inserisce in una tabella.

Ad esempio la casella combinata contiene tre elementi:
elemento1
elemento2
elemento3

a seconda del valore che scelgo lo inserisco in una tabella, è possibile fare questo?

grazie
1900000000000000000000000000
OpenOffice 3.1 on Windows, Linux (il prima possibile)
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: valori da combox ed inserirli in una altra tabella

Messaggio da xergio »

Sì, collegando all'evento opportuno della combo-box una macro simile alla seguente:

Codice: Seleziona tutto

Sub insCodArt(oEv)
sCodArt = oEv.Source.CurrentValue
sDb = "nometuodb"
oContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")

If oContext.hasByName(sDb) Then
	oDb = oContext.getByName(sDb)
	oIH = CreateUnoService("com.sun.star.sdb.InteractionHandler")
	oConn = oDb.connectWithCompletion(oIH)
        Endif
oStmt = oConn.createStatement()
U_Dati_articolo = "INSERT INTO articoli(code) VALUE ('"& sCodArt &"') "
oStmt.executeUpdate(U_Dati_articolo)

End Sub
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
amldc
Messaggi: 1
Iscritto il: giovedì 23 settembre 2010, 13:23

Re: valori da combox ed inserirli in una altra tabella

Messaggio da amldc »

Mi sembra che siano necessarie un paio di correzioni (almeno sulla versione Linux):

Codice: Seleziona tutto

U_Dati_articolo = "INSERT INTO ""articoli"" (""code"") VALUES ('"& sCodArt &"') "
  • se il nome tabella non viene racchiuso tra doppi apici, viene tradotto un maiuscolo e la tabella non viene trovata
    idem per il nome del campo
    VALUE va corretto in VALUES
OOO 3.2.1 - Ubuntu 10.4
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: valori da combox ed inserirli in una altra tabella

Messaggio da xergio »

E' assolutamente vero, per quanto riguarda l'HSQLDB (che evito adeguatamente :D ).
Grazie di averlo segnalato al forum.

(Come work-around per evitare le doppie virgolette, si potrebbero scrivere tutti i nomi delle tabelle in maiuscolo).
(Usando MySQL, non c'è nessun dubbio che funziona, anche se uso quasi sempre anch'io le doppie virgolette)
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
luilomo
Messaggi: 2
Iscritto il: lunedì 22 novembre 2010, 11:30

Re: valori da combox ed inserirli in una altra tabella

Messaggio da luilomo »

Scusate proteste spiegare meglio

Sub insCodArt(oEv)
sCodArt = oEv.Source.CurrentValue
sDb = "nometuodb"
oContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")

If oContext.hasByName(sDb) Then
oDb = oContext.getByName(sDb)
oIH = CreateUnoService("com.sun.star.sdb.InteractionHandler")
oConn = oDb.connectWithCompletion(oIH)
Endif
oStmt = oConn.createStatement()
U_Dati_articolo = "INSERT INTO articoli(code) VALUE ('"& sCodArt &"') "
oStmt.executeUpdate(U_Dati_articolo)

End Sub


Sto cercando di fare ciò che è gia stato scritto ma non riesco.
Vorrrei fare un formulario da cui inserire poi dati in una o più tabelle.
Esempio dalle tebelle Persone; Insegnamenti; Titoli; CdL; Contratti i combo-box visualizzano una o più variabili es: tabella Persone= Nome;cognome;codPersona ma non la chiave primaria della tabella ache si chiama IDPersone. Tabella Insegnamenti= IDInsegnamenti (chiave primaria); CodInsegnamento; Insegnamento etc...
Una volta scelti i dati dai vari combo box vorrei salvare la combinazione nelle tabelle che associano poi i dati. ES: tabella PersoneInsegnamento composta da IDPersone; IDInsegnamento; ed una sua chiave primaria automatica IDPersoneInsegnamento.

Grazie
luilomo
OpenOffice 3.1 su Windows
utonto_brother
Messaggi: 53
Iscritto il: lunedì 13 settembre 2010, 3:59

Re: valori da combox ed inserirli in una altra tabella

Messaggio da utonto_brother »

Anch'io vi chiedo un'aiutino per questa maco a me si pianta alla riga:

oStmt = oConn.createStatement()

dandomi "Variabile dell'oggetto non impostata"

sicuramente sto trascurando di caricare qualcosa mi aiutate?

Saluti
"Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati" (Bertolt Brecht)
ApacheOpenOffice 3.4.1 su Windows XP Pro SP3
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: valori da combox ed inserirli in una altra tabella

Messaggio da xergio »

utonto_brother ha scritto:Anch'io vi chiedo un'aiutino per questa maco a me si pianta alla riga:
oStmt = oConn.createStatement()
dandomi "Variabile dell'oggetto non impostata"
sicuramente sto trascurando di caricare qualcosa mi aiutate?
Saluti
Ciao
Potresti non avere registrato il database, oppure non avere collegato la macro all'evento della combo-box?
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Avatar utente
xergio
Messaggi: 315
Iscritto il: lunedì 15 marzo 2010, 21:54
Località: Arzignano (Vicenza)
Contatta:

Re: valori da combox ed inserirli in una altra tabella

Messaggio da xergio »

luilomo ha scritto:Scusate proteste spiegare meglio

Sto cercando di fare ciò che è gia stato scritto ma non riesco.
Vorrrei fare un formulario da cui inserire poi dati in una o più tabelle.
Esempio dalle tebelle Persone; Insegnamenti; Titoli; CdL; Contratti i combo-box visualizzano una o più variabili es: tabella Persone= Nome;cognome;codPersona ma non la chiave primaria della tabella ache si chiama IDPersone. Tabella Insegnamenti= IDInsegnamenti (chiave primaria); CodInsegnamento; Insegnamento etc...
Una volta scelti i dati dai vari combo box vorrei salvare la combinazione nelle tabelle che associano poi i dati. ES: tabella PersoneInsegnamento composta da IDPersone; IDInsegnamento; ed una sua chiave primaria automatica IDPersoneInsegnamento.

Grazie
luilomo
Attenzione che la macro descritta serve per un uso specifico (inserire al volo un nuovo record di tipo semplice) e non è sostitutiva di un normale inserimento tramite form e sub-form di record (quello che sembra tu stia facendo).
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
utonto_brother
Messaggi: 53
Iscritto il: lunedì 13 settembre 2010, 3:59

Re: valori da combox ed inserirli in una altra tabella

Messaggio da utonto_brother »

Ciao xergio, ti assicuro cheil DB è registrato e la combo è collegata. No notato che ottengo lo stesso identico problema con altre macro che usano createStatement()
ma da quello che ho capito dovrebbe essere una libreria Java (correggimi se sbaglio). Il fatto è che eseguire quel comando di INSERT mi servirebbe proprio :(
"Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati" (Bertolt Brecht)
ApacheOpenOffice 3.4.1 su Windows XP Pro SP3
luilomo
Messaggi: 2
Iscritto il: lunedì 22 novembre 2010, 11:30

Re: valori da combox ed inserirli in una altra tabella

Messaggio da luilomo »

Bene immagino allora stia seguendo la strata sbagliata.
Cosa dovrei fare a questo punto??
:crazy: :crazy: :crazy: :crazy:
OpenOffice 3.1 su Windows
vladko
Volontario
Volontario
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: valori da combox ed inserirli in una altra tabella

Messaggio da vladko »

@ utonto_brother

-1 che sistema operativo usi?
-2 controllato la jre (Sun x linux)?,
-3 provato in un altro pc?,
-4 con un'altra versione o/e altro sistema operativo(esempio una portable)?,
-5 provato a inserire in sicurezza/fonti attendibili il file su cui stai lavorando(attenzione a quello che fai perchè abiliti una directory)?,
-6 provato a disabilitare le estensioni?
-7 sicuro che per quello che vuoi ottenere non si può fare in altro modo?,
-8 puoi postare un esempio con dati fittizi che proviamo anche noi?

@ luilomo
secondo me hai 4 soluzioni :D :
-1 leggi un pò di guide e cerca di capirle,
-2 posta un esempio con dati fittizi, spiega cosa vuoi ottenere con quel db,
-3 continua a sbattere la testa ;),
-4 cambia attrezzo :knock:
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
netsam
Messaggi: 9
Iscritto il: sabato 16 aprile 2011, 12:30

Re: valori da combox ed inserirli in una altra tabella

Messaggio da netsam »

Scusate ma non ho ben chiaro cosa è il parametro oEv. Mi potete aiutare ?
Openoffice 3.1 su Windows Xp
giannidalmi
Messaggi: 62
Iscritto il: lunedì 21 febbraio 2011, 7:00

Re: valori da combox ed inserirli in una altra tabella

Messaggio da giannidalmi »

mi inserisco in questa discussione perchè forse mi sfugge qualcosa:
ma non sarebbe molto semplice inserire nel formulario il campo che deve registre il dato nella tabella come combobox associando la combo ad una tabella o ricerca che contiene i dati da inserire?
Magari con una query SELECT DISTINCT sullo stesso campo?
ho fatto una prova mi sembra funzioni!
buon lavoro
ciao
open office 3.2.1
window 7
Avatar utente
giorgiofoga
Messaggi: 116
Iscritto il: venerdì 28 gennaio 2011, 11:39

Re: valori da combox ed inserirli in una altra tabella

Messaggio da giorgiofoga »

visto che la cosa è stata riattualizzata .... voglio aggiungere che nel mio obase su ubuntu con il comando INSERT le variabili devono essere inserite in "triple virgolette" altrimenti mi si restituisce l'errore descritto dall'utente (su oconn.createstatement).

perchè non lo so proprio.... però funziona.
libreoffice 3.3.1 su ubuntu 10.10 64bit
openoffice 3.2.1 su ubuntu 10.10 32bit
Rispondi