Page 3 of 4
Re: [Base] Access2Base - Last version: 6.3
Posted: Wed Nov 20, 2019 10:47 am
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Wed Nov 20, 2019 11:12 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 23, 2019 11:20 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Wed Jan 01, 2020 11:54 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Mon Jan 06, 2020 4:12 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 07, 2020 9:46 am
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 07, 2020 11:09 am
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 07, 2020 2:13 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 07, 2020 3:52 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Thu Nov 26, 2020 7:19 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Fri Nov 27, 2020 11:59 am
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Fri Nov 27, 2020 5:51 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Fri Nov 27, 2020 7:34 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Tue Dec 22, 2020 11:14 pm
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.
Re: [Base] Access2Base - DLookup
Posted: Wed Dec 23, 2020 1:33 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Wed Dec 23, 2020 11:30 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Thu Dec 24, 2020 3:36 pm
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
to
Code: Select all
Case "FIREBIRD", "FIREBIRD (ENGINE12)"
Regards.
JPL
Re: [Base] Access2Base - Last version: 6.3
Posted: Thu Dec 24, 2020 5:40 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Thu Dec 31, 2020 4:53 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Thu Dec 31, 2020 5:44 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 20, 2021 5:07 am
by echo8hink
JPL
Thanks so much for A2B. I have used and continue to use it, and I have learned so much from it.
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 20, 2021 4:05 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Nov 20, 2021 5:31 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Sun May 29, 2022 4:03 am
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?
Re: [Base] Access2Base - Last version: 6.3
Posted: Sun May 29, 2022 11:06 pm
by Mountaineer
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.
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Fri Feb 24, 2023 3:57 pm
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.
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Feb 25, 2023 8:52 am
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
Hi and a general remark: Open a new thread, for your questions. It is rarly a good idea to continue another question...
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Feb 25, 2023 4:30 pm
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
Re: [Base] Access2Base - Last version: 6.3
Posted: Tue Feb 28, 2023 6:46 pm
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...
Re: [Base] Access2Base - Last version: 6.3
Posted: Sat Mar 11, 2023 9:38 am
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 ...