[Base] Access2Base - Last version: 6.3

Discussions about using 3rd party extension with OpenOffice.org
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@gelinp

I never experienced myself the need of coordinating the events in a form or in controls with semaphors or similar.

If your own experience is different, you should file a bug in https://bugs.documentfoundation.org/ with a good example of misbehaviour of the events queues.

Regards.
JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
User avatar
Villeroy
Volunteer
Posts: 31269
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: [Base] Access2Base - Last version: 6.3

Post by Villeroy »

My mouse events are triggered twice with LibreOffice 6.3 but not with LibreOffice 6.2.
My routine starts like this:

Code: Select all

Sub onMouseRelease(e)
If e.Buttons = 1 and e.ClickCount = 2 and e.Modifiers = 0 and e.PopupTrigger = False then 
msgbox "Yep"
This is called twice with every double-click on a table control. The actual code in place of the msgbox inserts a value from the table control into another table so the table control behaves like a multi-column list box.

Now I try this:

Code: Select all

Sub onMouseRelease(e)
Static X As Integer
If X=0 and e.Buttons = 1 and e.ClickCount = 2 and e.Modifiers = 0 and e.PopupTrigger = False then 
X=X+1
msgbox X
The msgbox is called only once but if the actual code performs a record insertion, the X variable is reset and 2 records are inserted instead of one.
Then I tried the same trick with a global X which raised very irritating errors about form objects that could not be found anymore. I changed nothing else, just replaced the static X with a global integer X.
I downgraded my database clients to LO 6.2. When I find some hour or two I'll set up a simple test case with embedded HSQL for a detailed bug report.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
User avatar
Villeroy
Volunteer
Posts: 31269
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: [Base] Access2Base - Last version: 6.3

Post by Villeroy »

Possibly I'm off topic here but the bug is real: https://bugs.documentfoundation.org/sho ... ?id=128988
Please move to the Base forum.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
DonaldS
Posts: 6
Joined: Tue Apr 21, 2009 1:09 am

Re: [Base] Access2Base - Last version: 6.3

Post by DonaldS »

With "TT NorthWind.odb" & "TT NorthWind StandAlone.odt" both open, if I click "Start" in "TT NorthWind StandAlone.odt" I get-

Error #91 (Object variable not set) occurred at line 504 in Form.Controls

line 504 has-
iCount = FormsCollection.Count

This error seems to be because FormsCollection has not been initialised when the A2B code is called from "TT NorthWind StandAlone.odt" macro code.

Similar code seems to work from the calculator form (and Dialog) from "TT NorthWind.odb"
How can I fix this or what is the problem?

Using-
Manjaro Linux
KDE
LO Version: 6.4.0.0.beta1

thanks Donald
OOo 3.0.X on Linux-Other
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@DonaldS,

the good news is that I could reproduce the problem.
The bad news is that the functionality of calling Access2Base from a standalone form seems broken at this moment and that I need some time to repair it.

Thanks for your feedback and for your patience.

JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Hi,

I'm with Access2Base 6.4.0 and LibreOffice 6.4.6.2 With Linux. I'm using Access2Base shortcuts with an formula into my Base application (not standalone formula).

Code: Select all

My formula structure is giving into piece attachment :
FORM_CATALOGUEDOCUMENTAIRES
    + Mainform
         + SubFormPlanClassement
So the problem is that I can't use Shortcut, without errors ...

I've got shortcut context to see it and call it by even like that I get error ! With tutorial I tried getObject like this:

Code: Select all

v = Application.getObject("Forms!Mainform!SubFormPlanClassement")
but it's same error ...

Note that when I open a new formula there is no "Mainform" registered into structure, it's totally empty ... So Mainform is added by me, but I'm wondering if it is well registered ...

See uploaded files :
* one fiel for error message
* the other about formula structure

It's not easy to give you the file because database is extern HSQLDB server ...
thank for your help.
Patrick
Attachments
Error message
Error message
Formula structure...
Formula structure...
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

Hi,

Only a guess:
in

Code: Select all

v = Application.getObject("Forms!Mainform!SubFormPlanClassement")
the name of the form seems missing.
I would rather expect something like

Code: Select all

v = Application.getObject("Forms!theformname!Mainform!SubFormPlanClassement")
JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Hi,
Thank you for your response. I tried again with absolute path and MainForm Parent's name like this :

v = Application.getObject("Forms!CATALOGUEDOCUMENTAIRES!Mainform")

But the problem is same ... I tried to play with case : MainForm, mainform... but problem is the same ...

I thing problem will come because new main form is created without Mainform and I added it by hand... It's not standalone form, and database connection is active. There is no sections, it's only subforms and grids cascade...

Patrick
Attachments
New try with error message
New try with error message
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

Ooops, I was wrong.

"MainForm" should be left out.

Code: Select all

v = Application.getObject("Forms!CATALOGUEDOCUMENTAIRES!SubFormPlanClassement")
should do the job if CATALOGUEDOCUMENTAIRES is the name of the form and SubFormPlanClassement one of its controls.

Read http://www.access2base.com/access2base. ... tion%5D%5D
and http://www.access2base.com/access2base. ... tationMore.

JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Thanks, it's OK :-)

Now I've got an other problem accessing a form at same base level that 'MainForm', a parallel Form... I tested With sample which screen capture attached in file. The second Base Form is 'SubFormFiltre'. So the error is below :

Code: Select all

Application.getObject("Forms!FORM_TACHES_A_FAIRE!SubFormFiltre.Form!CTRL_PERIODES") >> Error, Access2Base can't find SubFormFiltre, because it look for a suib form of MainForm...
I'll need something like ..\relativePathtoSomething :

Code: Select all

Application.getObject("Forms!FORM_TACHES_A_FAIRE!..!SubFormFiltre.Form!CTRL_PERIODES") >> I need a go up one level up to MainForm before to down to SubFormFilter...
Using a Second Form like "MainForm" is a good practice for Navigation or Filter. It's not a hierarchical dependency. Also a base form look's like independent Form and content is not refresh cascading from MainForm. If I put a ListBox in 'SubFormFilter' without table but only Value List Content, Then if I put Document into icon and I restore it, the ListBox content is empty If it's a subform of Mainform, but it's OK if it is a 'independent Form'.

Thank you for your help
Patrick
Attachments
Capture du 2020-11-26 18-14-51.png
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

I'm afraid that the described configuration of forms/subforms cannot be handled with the shortcut notation (which is an MSAccess concept ...).

BTW, when a subform is not related to a table and contains a listbox with hard values, I don't see why the listbox should not be initialized with what you expect ??

Regards.
JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Ok. Thank you for your response.

About my listbox in Subform not related to a table, it is well initialised, but it's a refresh problem, when I put windows as icon and go back to original size. Problem is coming only if this subform as a parent Form with database source. I think that Parent Form refresh and then cascade refresh event-s to all subforms. And I think that problem will be that subform looks for master-s field-s values to synchronise with parent form, but slaves fields are empties, because subform doesn't use a table source ... Because refresh procedure will be a data source without any table it will miss refresh procedure, or something like that... But I tested same subform at first level (like mainform), without any more refresh problems... Best pracrtices recomand to use a navigation form at same Mainform level, then synchronize Mainform with item selected into Navigation form. So I could retrieve old basic source code I writed already to do the job to find all first levels forms ...

Thank you.
Patrick
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
User avatar
Villeroy
Volunteer
Posts: 31269
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: [Base] Access2Base - Last version: 6.3

Post by Villeroy »

[Base, Python] Tiny Macro Refreshing Forms, List/Combo Boxes refreshes anything refreshable on any (sub/parent) form when some record has been updated, deleted or inserted. Just install (one click) and create a list of refreshables in a hidden control named "AutoRefresh" and assign the "record modified" event.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Raggy
Posts: 3
Joined: Mon Dec 21, 2020 11:36 pm

Re: [Base] Access2Base - Last version: 6.3

Post by Raggy »

Hi,
I try the Dlookup function in a database under Firebird.
This involves retrieving the name of an interpreter based on the id of a recording.
I receive in return the following message (in french at home):
Error # 1510 (DFunction execution failed, SQL = SELECT TOP 1 "Nom interprete" AS "TEMP83032" FROM "req_liste_par_inter_princ" WHERE "RefEnregistrement" = '364') occurred in DLookup
A search tells me that this message would correspond to a bug (bug 118767) ... but it has been fixed since 6.2.0... Moreover, this bug only affected the Firebird version; however, a test with HSQLDB gives me the same result. It is therefore surely something else… but I cannot find a solution. What's wrong ?
Thanks for your help !
I specify that I use 6.4.7.2, and Firebird Engine 12.
LibreOffice 6.4.7.2 / Ubuntu 18.04.5 LTS
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - DLookup

Post by JPL »

Hi Raggy,

my suggestion to diagnose the issue further is:

1. In the mentioned bug, follow the instructions to reproduce the bug. There is a test file available.

2. If you can reproduce the bug as described, please tell it below in this forum
or
2. If you cannot reproduce it, it is probably something new. Open then a new bug in bugzilla and put me in the CC List
Note, however, that, if the bug is confirmed, I will probably not be able to correctit in LO 6.4 because I doubt there will be an additional release in 6.4 after 6.4.7.2: the 7.1 version is coming soon and the 7.0 will become the next stable release.

Regards.
JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Raggy
Posts: 3
Joined: Mon Dec 21, 2020 11:36 pm

Re: [Base] Access2Base - Last version: 6.3

Post by Raggy »

Thank you JLP for responding so quickly.
I tested the FB Northwind.odb database by following the instructions. I confirm the error message: I reproduce the bug.
Thanks for your help.
LibreOffice 6.4.7.2 / Ubuntu 18.04.5 LTS
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@Raggy,

I reopened bug https://bugs.documentfoundation.org/sho ... ?id=118767
You can read there my comment at the bottom.

I prepared a patch for LO 7.0: see https://gerrit.libreoffice.org/c/core/+/108185

In the coming days the patch will be submitted for availability with LO 7.0.5. However LO 7.0.5 will not be released before march 2021 (read https://wiki.documentfoundation.org/ReleasePlan/7.0).
In the meantime, you could eventually apply with a text editor the same correction as what I did myself: change line 1168 (in 6.4, 1170 in 7.0) in ($Install)/share/basic/Access2Base/Database.xba
from

Code: Select all

		Case "FIREBIRD"
to

Code: Select all

		Case "FIREBIRD", "FIREBIRD (ENGINE12)"
Regards.
JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Raggy
Posts: 3
Joined: Mon Dec 21, 2020 11:36 pm

Re: [Base] Access2Base - Last version: 6.3

Post by Raggy »

@JPL
Thank you very much for taking the time to respond to me.
I modified the database.xba as indicated.
With the Northwind test base, I no longer reproduce the error!
But for my own database, the error message is still displayed, with "SELECT FIRST1" instead of "SELECT TOP1" ...
So I imagine the problem is with me, not with the DLookup function in Firebird...
Regards,
Raggy
LibreOffice 6.4.7.2 / Ubuntu 18.04.5 LTS
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Hi,

How to catch Uno DialogBox opend with createDialogWithHandler Uno interface ?

What I attempt is to load ""DlgFondsDesNotices"" dialog box opend with Uno createDialogWithHandler interface, then to access it with Access2BAse API getObject or AllDialogs, but Access2BAse can't find the Dialog box loaded ... And A2B Dialog UnoDialog property is readonly, so I can't use it has copy constructor ... So is it possible to Access a dialog box loaded with Uno ApI ? Or to had createDialogWithHandler has an other way to load Dialogs into Access2Base ?

Thank you For your Help...
Patrick

See my code below, there is 2 tries to focus on :

First try show all dialog box closed, particularlyh the dialog box "DlgFondsDesNotices" I hoped to find open , but nothing is loaded ...

Code: Select all

For i =0 to Application.AllDialogs().count-1
	content = content & ";" & Application.AllDialogs(i).Name &  " >> " & Application.AllDialogs(i).IsLoaded & CHR(10)
Next i
MsgBox content
Second try attempt to find "DlgFondsDesNotices" but get error message : unavailable arg n°1 "DlgFondsDesNotices".

Code: Select all

 Set oDlg = Application.getObject("Dialogs!DlgFondsDesNotices")
All my module (Withour UIDialogs and Dialog to test) :

Code: Select all

REM  *****  BASIC  *****

'-----------------------------------------------------------------------------
Sub DlgFondsDesNotices_Show()

    Dim dp as Object ' com.sun.star.awt.DialogProvider2
    Dim dialog As Object ' com.sun.star.awt.XDialog, com.sun.star.awt.XDialogEventHandler
    Dim eventHandler As Object ' com.sun.star.awt.XDialogEventHandler
    
    dp = CreateUnoService("com.sun.star.awt.DialogProvider2")
    dp.Initialize(Array(ThisComponent)) ' si intégrée au document
    eventHandler = CreateUnoListener("HandlerDlgFondsDesNotices_", "com.sun.star.awt.XDialogEventHandler")
    dialog = dp.createDialogWithHandler("vnd.sun.star.script:UIDialogs.DlgFondsDesNotices?location=document", eventHandler)
    dialog.Title = "Fonds des notices"
    'dialog.Start
    	_InitDefaultContent()
    	dialog.execute()
    
    'Dialog.Terminate
End Sub

'-----------------------------------------------------------------------------
Function HandlerDlgFondsDesNotices_callHandlerMethod(dialog as Object, _
        event As com.sun.star.document.DocumentEvent, _
        method As String) As Boolean
        
    ''' Intercept dialog events using .UNO protocol '''
    DlgFondsNotices_callHandlerMethod = True
    Select Case method
        Case "_UpdateList"
           
        Case "_openHelp"
            MsgBox "Not yet implemented",0 , "Howdy"
            'dialog.endDialog(1) if computer-based dialog
        Case Else : DlgFondsNotices_callHandlerMethod = False
    End Select
End Function ' <Handler>.DlgFondsDesNotices_callHandlerMethod

'-----------------------------------------------------------------------------
Function HandlerDlgFondsDesNotices_getSupportedMethodNames()
    DlgFondsNotices_getSupportedMethodNames = Array("_UpdateList", "_openHelp")
End Function ' <Handler>.DlgFondsDesNotices _getSupportedMethodNames

'-----------------------------------------------------------------------------
Sub _InitDefaultContent()
	Dim ocList As Object
	Dim orsRecords As Object
	Dim content As string
	Dim SEP As String
	Dim oDlg As Object
	Dim v As Variant
	Dim i As Integer
	
	For i =0 to Application.AllDialogs().count-1
		content = content & ";" & Application.AllDialogs(i).Name &  " >> " & Application.AllDialogs(i).IsLoaded & CHR(10)
	Next i
	
	MsgBox content
	
 	Set oDlg = Application.getObject("Dialogs!UIDialogs.DlgFondsDesNotices")
	Set ocList = oDlg.Controls("ListTypeFonds")
	SEP = ""
	
	Set orsRecords = Application.CurrentDb().OpenRecordset("SELECT [CATEGORIE], [ID] FROM [AUTLESCATEGORIES] WHERE [SERIE] = 'TYPEFONDS' ORDER BY [CATEGORIE] ASC", , , dbReadOnly)
	With orsRecords
		If Not .BOF Then		'	An empty recordset has both .BOF and .EOF set to True
			Do While Not .EOF
				content = content & SEP & orsRecords.Fields("CATEGORIE").value
				SEP = ";"
				.MoveNext
			Loop
		End If
		.mClose()
	End With
	 
	ocList.RowSource = content
	ocList.ListIndex = 0
End Sub
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@gelinp,

a dialog box is always started by some code, either with UNO or via the Access2Base library.

If you open it with A2B, you can use the provided properties and methods (incl. "Controls") or access its UNO interface with UnoDialog.
If you open it with UNO directly, you have to stay with UNO for the whole lifetime of the dialog.

JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
User avatar
echo8hink
Posts: 12
Joined: Wed Mar 02, 2016 7:59 pm

Re: [Base] Access2Base - Last version: 6.3

Post by echo8hink »

JPL
Thanks so much for A2B. I have used and continue to use it, and I have learned so much from it. :bravo:

This is just a note to you about a peculiar crash that I experience using LO 7.1.5.2 Base on Linux Mint 20.2 Cinnamon. I downloaded the TT Northwind.odb recently and when I use the Orders_Tabbed form, if I use the navigation bar at the bottom of the form to cycle up and down through the records and then mouse click the buttons that work the sections to appear as a tab control, after a couple of record changes and button clicks LO will simply quit and show the "Something went wrong" dialog box. I can get through the recovery and reopen the .odb and all works well again. I have worked through the other forms and everything seems ok. Only the tabbed form use blows me out of Base. Just wondering if you might have any ideas what may be going wrong?

-hink
LibreOffice 5.4.5.1 on Linux Mint 18.3
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@echo8hink,
Just wondering if you might have any ideas what may be going wrong?
Well, not directly ... :?

I cannot reproduce the issue. Can you give more precisions about the scenario that causes the crash, eventually by PM ?

Thanks for your positive feedback about A2B !

JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
User avatar
echo8hink
Posts: 12
Joined: Wed Mar 02, 2016 7:59 pm

Re: [Base] Access2Base - Last version: 6.3

Post by echo8hink »

I open the Orders_Tabbed form, click "Details" button, click "Orders" button, click navigation arrow to advance to record 2, click on "Details" button, crash!

The link to crash report: https://crashreport.libreoffice.org/sta ... 5a83d15830

Maybe you can find something there? It mostly puzzles me.

There is no emergency here. I am just seeing what is in the TT Northwind.odb out of curiosity.
LibreOffice 5.4.5.1 on Linux Mint 18.3
DavidTangye
Posts: 1
Joined: Sun May 29, 2022 3:35 am
Location: New Zealand

Re: [Base] Access2Base - Last version: 6.3

Post by DavidTangye »

Hi all.

I want to open a MS Access .accdb database and view and perhaps export the table data.
I am running OpenOffice 6.4, on the latest version of Ubuntu 20.04.04 LTS

I read the Access2Base Release notes and What is Access2Base ? but I can't find info there about which database versions it opens.

Specifically I want to know will Access2Base read .accdb file format versions of MS Access databases?
Latest version OpenOffice for Ubuntu (20.04 LTS) using an Odroid N2+ SBC
Mountaineer
Posts: 310
Joined: Sun Sep 06, 2020 8:27 am

Re: [Base] Access2Base - Last version: 6.3

Post by Mountaineer »

DavidTangye wrote: Sun May 29, 2022 4:03 am Hi all.
Hi and a general remark: Open a new thread, for your questions. It is rarly a good idea to continue another question...
I want to open a MS Access .accdb database and view and perhaps export the table data.
IMHO Access2Base will NOT help you.
I am running OpenOffice 6.4, on the latest version of Ubuntu 20.04.04 LTS
I don't think so. My guess is you are using LibreOffice, and you have to check if Base is actually included in your installation, as maintainers for Ubuntu often leave out Base and java when packaging LO.
I read the Access2Base Release notes and What is Access2Base ? but I can't find info there about which database versions it opens.
None. It is a library, for users who are used to the style of programming used in MS-VBA to handle the database named "Access". The library helps to re-use the BASIC-Code instead of a complete rewrite using the UNO-api wich is used by AOO/LO.
Specifically I want to know will Access2Base read .accdb file format versions of MS Access databases?
Have you checked the handbook on Base on this topic?

J.
OpenOffice 3.1 on Windows Vista
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

How to set SQL parameters of the report (or change whole SQL report) using OpenReport ? Elsewhere is it possible to do another way than OpenReport ?
Thank you for your help.
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
Mountaineer
Posts: 310
Joined: Sun Sep 06, 2020 8:27 am

Re: [Base] Access2Base - Last version: 6.3

Post by Mountaineer »

gelinp wrote: Fri Feb 24, 2023 3:57 pm ... using OpenReport ? ...
Thank you for your help.
Sorry, but I refuse to help people who can't read.
Mountaineer wrote: Sun May 29, 2022 11:06 pm
DavidTangye wrote: Sun May 29, 2022 4:03 am Hi all.
Hi and a general remark: Open a new thread, for your questions. It is rarly a good idea to continue another question...
OpenOffice 3.1 on Windows Vista
JPL
Volunteer
Posts: 130
Joined: Fri Mar 30, 2012 3:14 pm

Re: [Base] Access2Base - Last version: 6.3

Post by JPL »

@gelinp,

The Access2Base API does not provide access to the definition of a Base report. :(

To achieve what you want, please resort to the UNO API.

JPL
Kubuntu 22.04 / LibO 7.5
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO)
Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

OK... So I succedeed to modify the SQL Query used by the report before to open it. This is the code :

Code: Select all

Set odbDatabase = Application.CurrentDB()
If IsEmpty(odbDatabase) Then Err = 51
Set oQueryDef = odbDatabase.QueryDefs("REQ_SEANCE")
Set oModelPedagogie = GetModelPedagogie()
oQueryDef.SQL = oModelPedagogie.SQLSeanceFromID(_oFormCatalogueSeancesPresenter.FKSEANCESELECTED)
RunCommand("Save")
DoCmd.OpenReport("RAP_SEANCE", acViewNormal)
But there is a problem : With Linux all is OK and the report open successfuly, but with Windows 10 there is only a white Windows... I try to debug but what I can say is that DoCmd.OpenReport("RAP_SEANCE", acViewNormal) is executed and the windows open but the content is white ... I I open the report "RAP_SEANCE" directly with report LinreOffice interface there is no problem, I can see the report ...

Same problem with uno code :

Code: Select all

Dim dbDoc As variant
Dim lesRapports As Variant
Dim docReport As Variant
	
dbDoc = ThisComponent.Parent
lesRapports = dbDoc.ReportDocuments
if lesRapports.hasByName("RAP_SEANCE") then
	docReport = lesRapports.getByName("RAP_SEANCE")
	docReport.open
else
	MsgBox("Rqapport inconnu : RAP_SEANCE", 16)
end if
So is it a problem witn Libreoffice Java installation in Windows ? I' tested JDK 18 and 19 because JSE 8.1 doesn't work with external HSQLDB driver connection...
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
gelinp
Posts: 35
Joined: Mon Oct 09, 2017 9:27 pm

Re: [Base] Access2Base - Last version: 6.3

Post by gelinp »

Hi,

I tried to use a QueryDef as a preparedStatement but I've got an error message. The stored query is :

SELECT * FROM "IDXTHESAURUSTD" WHERE "ID" = ? (named "SELECTTD")

Then I try to use it like this :

Code: Select all

Sub Main

	Dim oQueryDef As Object
	Dim oRecordset As Object
	Dim oIDField As Object
	
	Const _RACINE = 7009 
	
	On local error goto Erreur
	
	Set oQueryDef = Application.CurrentDb().QueryDefs("SELECTTD")
	Set oField = oQueryDef.Fields("ID")
	oField.VALUE = _RACINE
	Set oRecordset = oQueryDef.OpenRecordset()

Exit_Sub:
	On error resume next
	Exit Sub
Erreur:
	TraceError("ERROR", Err, Name, Erl)
	Stop
End Sub
The (french) error message at line "oField.VALUE = _RACINE" is :
L'erreur #1512 : (La propriété 'value' n'est pas applicable dans ce contexte) c'est produit dans un appel à la fonction 'oField.Setvalue'.
I can't find any help about writing value with field object in QueryDef ...

So is-it possible to use a registered Query as a preparedStatement with Access2Base ?

Thank you for your help ...
Libreoffice 6.4.6.2, Kernel: 5.4.0-52-generic x86_64 bits: 64
Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
Post Reply