[Opgelost] Een datasource aanpassen.
[Opgelost] Een datasource aanpassen.
Hallo
Dit kan helpen met het instellen van een DataSource en pad voor database.
Dit is gemaakt voor het geval je een database heb en die met anderen wilt delen. Soms lukt het niet altijd voor de nieuwe gebruiker om het een en ander goed te installeren. Dit probeert hiervoor een macro te maken. De macro zit in een onafhankelijk document zodat de feitelijke database geen macro hoeft te bevatten. Indien er geen DataSource is op de Nieuwe computer dan wordt een DataSource gemaakt die gelijk is aan somminge onderdelen van de bijgeleverde files. Ik gebruik nu het voorbeeld voor VoorForum in een spreadsheet.
Als ik het een en ander goed begrepen heb wil dit werken voor verschillende databases:
HSQLDB met losse files
De embedded HSQLDB
DB files
Spreadsheet
De bedoeling van deze macro is dat het ook maar een keer gebruikt wordt. Je krijgt geen boodschap maar kunt de nieuwe naam wel in de datasource zien.
Het is mogelijk dat er nog kleine foutjes in zitten
Romke
Dit kan helpen met het instellen van een DataSource en pad voor database.
Dit is gemaakt voor het geval je een database heb en die met anderen wilt delen. Soms lukt het niet altijd voor de nieuwe gebruiker om het een en ander goed te installeren. Dit probeert hiervoor een macro te maken. De macro zit in een onafhankelijk document zodat de feitelijke database geen macro hoeft te bevatten. Indien er geen DataSource is op de Nieuwe computer dan wordt een DataSource gemaakt die gelijk is aan somminge onderdelen van de bijgeleverde files. Ik gebruik nu het voorbeeld voor VoorForum in een spreadsheet.
Als ik het een en ander goed begrepen heb wil dit werken voor verschillende databases:
HSQLDB met losse files
De embedded HSQLDB
DB files
Spreadsheet
De bedoeling van deze macro is dat het ook maar een keer gebruikt wordt. Je krijgt geen boodschap maar kunt de nieuwe naam wel in de datasource zien.
Het is mogelijk dat er nog kleine foutjes in zitten
Romke
- Bijlagen
-
- VoorForum.ods
- Spreadsheet voor database
- (16.02 KiB) 242 keer gedownload
-
- VoorForum.odb
- Databasedoucment
- (3.11 KiB) 203 keer gedownload
-
- ReInitpathDatasource07.odt
- Document met macro
- (13 KiB) 361 keer gedownload
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Er zit bij mij alleszins iets fout want ik krijg een foutmelding. Het is geen foutmelding die voorzien is in het macroscript. Maar die macro gaat wel mijn petje ver te boven.
Re: [Opgelost] Een datasource aanpassen.
Hello
Ik had op het laatst de namen wat aan gepast zodat het wat duidelijker zou zijn. Ik werkte eerst met de naam maakdatabase. Die naam heb ik later aan gepast naar ReInitpathDataSource. Ook de naam van de macro heb ik veranderd
Ik zal alles opnieuw opsturen.
Ik heb het mogelijk niet duidelijk vermeld maar de files moeten allemaal in een enkele map staan.
Het is ook niet de bedoeling dat je de macro moet begrijpen. Het mag natuurlijk maar het is mijn bedoeling dat iets gemakkelijker kan. Waarschijnlijk zal ik het ook op het Engelse forum plaatsen maar nu kan ik kijken of het voor jouw werkt. Op het Engelse forum heb ik wel een proef versie geplaatst met alleen de macros.
Groeten
Romke
Ik had op het laatst de namen wat aan gepast zodat het wat duidelijker zou zijn. Ik werkte eerst met de naam maakdatabase. Die naam heb ik later aan gepast naar ReInitpathDataSource. Ook de naam van de macro heb ik veranderd
Ik zal alles opnieuw opsturen.
Ik heb het mogelijk niet duidelijk vermeld maar de files moeten allemaal in een enkele map staan.
Het is ook niet de bedoeling dat je de macro moet begrijpen. Het mag natuurlijk maar het is mijn bedoeling dat iets gemakkelijker kan. Waarschijnlijk zal ik het ook op het Engelse forum plaatsen maar nu kan ik kijken of het voor jouw werkt. Op het Engelse forum heb ik wel een proef versie geplaatst met alleen de macros.
Groeten
Romke
- Bijlagen
-
- ReInitpathDatasource07.odt
- Bestand met macros
- (13.33 KiB) 262 keer gedownload
-
- VoorForum.odb
- (3.11 KiB) 203 keer gedownload
-
- VoorForum.ods
- (16.02 KiB) 311 keer gedownload
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Nu krijg ik:

Er is dus toch nog iets fout?

Er is dus toch nog iets fout?
Re: [Opgelost] Een datasource aanpassen.
Hallo
Mijn dank voor de reactie. Ik zal zoeken hoe het komt. Ik heb een vraag is het getest met Windows of Linux?
Romke
Mijn dank voor de reactie. Ik zal zoeken hoe het komt. Ik heb een vraag is het getest met Windows of Linux?
Romke
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Hallo
Ik heb met het testen nog een andere fout gevonden. Aan die fout was je nog niet toegekomen. Ik heb nog geen oplossing van de door jouw aangegeven fout. Ik maak gebruik van iets wat pas ingevoerd is sinds OOo3.3.
http://api.openoffice.org/docs/common/r ... tions.html
Ik zal kijken of ik op dat punt nog iets kan vinden.
Groeten
Romke
Ik heb met het testen nog een andere fout gevonden. Aan die fout was je nog niet toegekomen. Ik heb nog geen oplossing van de door jouw aangegeven fout. Ik maak gebruik van iets wat pas ingevoerd is sinds OOo3.3.
http://api.openoffice.org/docs/common/r ... tions.html
Ik zal kijken of ik op dat punt nog iets kan vinden.
Groeten
Romke
- Bijlagen
-
- ReInitpathDatasource08.odt
- (13.15 KiB) 239 keer gedownload
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Momenteel heb ik enkel getest in Ubuntu 10.04. Onder XP heb ik een verouderde versie van OoO draaien. Xp gebruik ik dan ook enkel maar sporadisch meer.
Re: [Opgelost] Een datasource aanpassen.
Hallo
Op het ogenblik weet ik niet hoe ik het moet maken onder een oude versie van OOo maar ik heb een complete code gevonden van Drew Jensen en dat is naar ik verwacht werkbare code. Het is code uit het jaar 2005.
http://www.oooforum.org/forum/viewtopic ... object+sub
Als Drew Jensen code maakt dan werkt het meestal goed.
Romke
Op het ogenblik weet ik niet hoe ik het moet maken onder een oude versie van OOo maar ik heb een complete code gevonden van Drew Jensen en dat is naar ik verwacht werkbare code. Het is code uit het jaar 2005.
http://www.oooforum.org/forum/viewtopic ... object+sub
Als Drew Jensen code maakt dan werkt het meestal goed.
Romke
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Hallo
Na dat ik de code gevonden heb van Drew Jensen duurde het even voordat ik het compleet begreep. Het resultaat is dat het niet veel moeilijker is dan met de oude versie.
Dat de code zelf vrij gecompliceerd is komt doordat er ook nogal aan wat andere dingen gedacht moet worden.
Later toegevoegd. (2-12)
De code van Drew Jensen leerde mij dat het veel korter kon. Iets wat ik eerst met macro's moest oplossen word nu gedaan door OOo zelf. Daarbij blijft het ook nog geschikt voor een oude versie van OOo. De file zelf is langer geworden omdat ik alles er in heb gelaten. Maar als je het wilt gebruiken dat kan ik er alles uit halen.
Romke
Na dat ik de code gevonden heb van Drew Jensen duurde het even voordat ik het compleet begreep. Het resultaat is dat het niet veel moeilijker is dan met de oude versie.
Dat de code zelf vrij gecompliceerd is komt doordat er ook nogal aan wat andere dingen gedacht moet worden.
Later toegevoegd. (2-12)
De code van Drew Jensen leerde mij dat het veel korter kon. Iets wat ik eerst met macro's moest oplossen word nu gedaan door OOo zelf. Daarbij blijft het ook nog geschikt voor een oude versie van OOo. De file zelf is langer geworden omdat ik alles er in heb gelaten. Maar als je het wilt gebruiken dat kan ik er alles uit halen.
Romke
- Bijlagen
-
- ReInitpathDatasource13.odt
- (18.61 KiB) 291 keer gedownload
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
De korte formule heeft geen foutmelding gegeven onder Ubuntu en lijkt me naar behoren te werken. Van zodra ik XP opstart, zal ik dit hier melden wat daar de uitslag is. Fantatstisch mooi staaltje dat hier word geleverd? 
Re: [Opgelost] Een datasource aanpassen.
Hallo
Johan mijn dank voor de informatie. Ik heb met het maken van die macro ook een beter inzicht gekregen hoe het allemaal werkt en dat is ook goed. Ik hoop ook dat je er wat aan hebt.
Romke
Johan mijn dank voor de informatie. Ik heb met het maken van die macro ook een beter inzicht gekregen hoe het allemaal werkt en dat is ook goed. Ik hoop ook dat je er wat aan hebt.
Romke
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: [Opgelost] Een datasource aanpassen.
Hallo
Ik heb de code nog wat kunnen vereenvoudigen door dat ik het beter begreep. Nu werkt de code alleen als alles in een enkele map staat. Het is niet noodzakelijk dat de data in het database document zelf staat.
Ik denk dat deze beperking het gemakkelijker maakt om het te gebruiken. Als het gebruikt wordt voor een database waarbij de data staat in aparte files dan moet alles in een enkele map staan.
Voor de duidelijkheid deze macro moet in het databasedocument zelf staan.
Romke
Ik heb de code nog wat kunnen vereenvoudigen door dat ik het beter begreep. Nu werkt de code alleen als alles in een enkele map staat. Het is niet noodzakelijk dat de data in het database document zelf staat.
Ik denk dat deze beperking het gemakkelijker maakt om het te gebruiken. Als het gebruikt wordt voor een database waarbij de data staat in aparte files dan moet alles in een enkele map staan.
Voor de duidelijkheid deze macro moet in het databasedocument zelf staan.
Romke
Code: Selecteer alles
Option explicit
' This is for code special for version of OOo 3.3 and higher
' Use this macro in a normal writer document.
' How can I registrate a database from a running database
Sub ConnectDatabaseAgain
compatibilitymode(true)
dim sDatabaseSourceName
' If you give here a name for the sDatabaseSourceName then it will be used
' It is not a problem to have more then once registrated the same database AFAIK
'sDatabaseSourceName="AARomke"
dim oDatabaseContext ' Here we can find all the registrated databases
' Variables we need point to thing who belong to this document
dim oDatabase
dim sSeparator ' Windows does have an other slash the linux in a path
dim oDatabaseSource
' Do first some initing
' We need this library
GlobalScope.BasicLibraries.loadLibrary("Tools") 'Load a library with subs
'Here we want have elements of the database
sSeparator= Choose(GetGUIType,"\","","","/") ' Make a choice between the slash'
oDatabase= thisdatabasedocument
' A service we need for doing this macro
oDatabaseContext = createunoservice("com.sun.star.sdb.DatabaseContext")
if len(sDatabaseSourceName) =0 then
' use the name of the database for registrating the name
sDatabaseSourceName= GetFileNameWithoutExtension(filenameoutofpath(convertfromurl(oDatabase.url)))
end if
if oDatabaseContext.hasRegisteredDatabase(sDatabaseSourceName) then
oDatabaseContext.changeDatabaseLocation(sDatabaseSourceName,oDatabase.url)
else oDatabaseContext.registerDatabaseLocation(sDatabaseSourceName,oDatabase.url)
end if
End Sub
LibreOffice 24.2.4.2 op openSUSE Leap 15.6