Pagina 1 di 1

Puntare ad una riga di una tabella

Inviato: venerdì 4 marzo 2011, 16:53
da Blastor
Come da topic, non riesco a puntare tramite macro una riga di una tabella, vorrei riuscire a puntare la riga dopo quella visualizzata in un formulario..sto iniziando da poco ad usare le macro e ancora non riesco a trovare niente in merito, ho cercato anche su google ma niente..qualcuno riuscirebbe a darmi una mano?

Re: Puntare ad una riga di una tabella

Inviato: sabato 2 aprile 2011, 23:00
da xergio
Per andare alla riga successiva alla corrente puoi usare il metodo Next del rowset.
Se vuoi inserire una riga puoi usare l'InsertRow del rowset.
Oppure direttamente dal form

Codice: Seleziona tutto

oModel = oEv.Source.getModel
oFormDoc = oModel.getParent
oFormDoc.moveToInsertRow()

Re: Puntare ad una riga di una tabella

Inviato: lunedì 18 aprile 2011, 16:23
da Blastor
xergio grazie intanto dell'aiuto..ma non riesco ad usare il rowset :oops:
potresti dirmi come richiamarlo?
avrei due problemi che dovrei risolvere in questo modo..ci sto sbattendo da un po ma ancora non ho trovato nessuna soluzione..ti posto i due problemi, spero riuscirai a farmi accendere una lampadina in testaXD
allora intanto mi servirebbe un tasto in un form che mi permette di eliminare una riga...un po come il tasto che c'è nella barra di navigazione del formulario, ma dovrei farlo tramite macro in quanto quella barra è nascosta per rendere il database più user friendly

Codice: Seleziona tutto

sub elimina
oDoc=ThisComponent
oForm=oDoc.DrawPage.Forms.MainForm

ctl=oForm.getbyname("fmtIDCliente")

sql="DELETE FROM `test`.`anagrafica clienti` WHERE `IDCliente`='"& ctl.text &"'"
connessione=connettiDB("nomedb")
EXupdate(connessione,sql)
'deleterecord()
End sub

'__________________________________________________________________

Function connettiDB(nomedb)
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(nomedb)
If Not DataSource.IsPasswordRequired Then
Connection = DataSource.GetConnection("","")
Else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
End If
connettiDB=Connection
End function

' _____________________________________________________

Function EXupdate(conn as object,cmd as string)
Statement = conn.PrepareStatement(cmd)
Statement.executeUpdate()
end function
uso questo codice per eliminare una riga dal formulario, ma non viene aggiornato e se provo il metodo reload() riparte dalla prima riga, invece di posizionarsi nella riga precedente (come il tasto nella barra di navigazione del formulario) o successiva..

l'altro problema è che ho un campo nel MainForm che è collegato tramite macro ad una griglia in un sottoformulario, ogni volta che aggiorno questo campo, mi si aggiorna la riga nel subform, il problema è che se ho selezionato nel subform la seconda riga, mi aggiorna quella, mentre io vorrei sempre far aggiornare la prima riga a prescindere da quante righe è formata la griglia collegata al MainForm...
Spero sei risucito a capirmi.. se qualcosa non ti è chiaro dimmi pure...

Re: Puntare ad una riga di una tabella

Inviato: sabato 30 aprile 2011, 11:23
da vladko
1 metodo last ;)
2 focus