Page 1 of 1

Databasetilgang i calc

Posted: 23. Oct 2003 11:43
by LarsBrandi
Jeg vil gerne have noget database futtelihut i et regneark, og det kan jo godt lade sig gøre med datapilot. Men det der ville være det optimale ville være at man fik dropdown lister med valg af værdier, som så blev sat ind i en given celle. Når alle ens valg så er foretaget, skal man trykke på en knap, og relevante værdier bliver gemt i en database. Nogen måder at gøre det på ?

Re:Databasetilgang i calc

Posted: 24. Oct 2003 21:23
by Jesper Krogh
Jeg ved ikke om du kan bruge det til noget, men der er en guide udi det med database tilgang her. Jeg har ikke selv prøvet, så jeg ved ikke om det løser dit problem;

http://articles.linmagau.org/modules.ph ... 230&page=1

Re:Databasetilgang i calc

Posted: 5. Nov 2003 11:42
by LarsBrandi
Jesper Krogh wrote:Jeg ved ikke om du kan bruge det til noget, men der er en guide udi det med database tilgang her. Jeg har ikke selv prøvet, så jeg ved ikke om det løser dit problem;

http://articles.linmagau.org/modules.ph ... 230&page=1
Ja, nu begynder det at ligne noget. At lave en formularfunktion til en database er ikke noget problem. Men at linke formularen til et given felt i regnearket er mere problematisk. Googler lidt rundt

Så blev det løst !

Posted: 5. Nov 2003 15:05
by LarsBrandi
Men den var ikke ligetil. Man skal over i makro-programmering. Urg, tænkte jeg. Men efter at have dedikeret nogle timer ( og nogle flere urg'er ) på det her makrosprog, og bla fundet ud af at String og Value ikke er det samme, ( så man skal holde striks på hvad man vil have ), kom jeg frem til følgende makro :

Lidt forklaring først. Jeg har lavet en kombinationsboks der hedder "Mat", der er linket op til en database. Når jeg vælger en værdi i boksen vil jeg have værdien over i celle A1 på Ark1

Sub Hentteksttilfelt
Dim oDocument As Object, oSheet As Object, oCell As Object, oDpage As Object, oForm As Object
oDocument=ThisComponent
oSheet=oDocument.Sheets.getByName("Ark1")'Hvilket regneark skal værdien rettes på
oCell=oSheet.getCellByposition(0,0) 'Celle A1 ( hvorfor ikke "A1" ??? )
oDpage = Osheet.DrawPage
oForm = oDpage.Forms("Ark1").getByName("Mat")' Navnet på den kontrolform man vil hente da fra
Result= oForm.text' Så hentes data
'print Result
oCell.setString(Result)' Så sættes data i A1

End sub


Det virker sørme. Så nu skal der hekses

Link til makroprogrammering

Posted: 5. Nov 2003 15:29
by LarsBrandi
Her er en god reference til makroprogrammering

http://www.pitonyak.org/AndrewMacro.sxw

Script til en tabel

Posted: 7. Nov 2003 09:50
by LarsBrandi
Undskyld hvis jeg skriver, for meget, men det her makrohalløj, er ved at blive sjovt. Så jeg har lavet et script til tabeller nu. Er en variant af den før postede :

Sub Hentkolonne

Dim oDocument As Object, oSheet As Object, oCell As Object, oDpage As Object, oForm As Object
oDocument=ThisComponent
oSheet=oDocument.Sheets.getByName("Sheetname")'
oCell=oSheet.getCellByposition(0,0) 'Cell A1
oDpage = Osheet.DrawPage
oForm = oDpage.Forms("Sheetname").getByName("Formname").getByIndex(Columnnumber)
Result = oForm.text
oCell.setString(Result)' Use this for text
oCell.setValue(Result)' Use this for numbers

End sub