[AccessD] Call a function in an AccDb from outside it?

Rocky Smolin rockysmolin2 at gmail.com
Fri Oct 14 01:24:37 CDT 2022


You could have a donate request form on you about page for donations to
AccessD.

R

On Fri, Oct 14, 2022 at 3:03 AM Arthur Fuller <fuller.artful at gmail.com>
wrote:

> To all you people who I am distracting from profitable coding: thank you
> sooo much for taking the time required to think about my petty problems,
> and even write sample code to help me get from A to B. I am so grateful to
> you all.
> In previous years, I think I provided more help and answers than I did ask
> questions, but time goes on, the available grey cells diminish, and the
> balance tilts. Now I find that I am asking more than answering. And I am
> grateful to you all for helping me solve problems on an entirely new level.
>
> In the past, most of the questions I asked and answered concerned specific
> problems, as opposed to more abstract problems concerning the Access
> internals. The previous stuff was easy; the new stuff is pretty much new to
> me, and I appreciate your insights.
>
> I should add that nobody is employing me to build this utility that is
> barely 1/2 the way off the ground. When it is finally done, I intend to
> give it away, and on its Help/About page there will be mentions of everyone
> who has provided guidance, sample code, etc. Said About page may require a
> Scrollbar. 😀
>
> Alternatively, when this thing is finally done, I think it may be useful.
> To that end, I'm thinking of charging a small fee for its license, and
> distributing its income-generation among those listed in the Code
> Contributors list. Or I could just sidestep all that crap and just give it
> away. In about one month, I shall turn 75 years old, and the last thing I
> need is another administrative/economic task!
>
> I'd say I'd rather bask in the sun and watch scantily-clad women walk by,
> but in Toronto in winter, those are few and far between. So I'll skip the
> drama and just give it away, and the Help/About page will require a
> scrollbar. So be it. I think of it as the debt that I owe this most
> valuable community.
>
> On Thu, Oct 13, 2022 at 7:27 PM Stuart McLachlan <stuart at lexacorp.com.pg>
> wrote:
>
> > That will get you the names and properties of each form/report/module,
> but
> > the Docmd stuff
> > won't work with objects in another database and AFAIK, you can't get at
> > the actual content
> > of the objects.
> >
> > It looks as though about all you can do with them is:
> >
> > Function GetObjects(db As String,objType as string) As Long
> >     Dim db1 As DAO.Database
> >     Dim doc As DAO.Document
> >     Dim prop As Property
> >     Set db1 = DBEngine.OpenDatabase(CurrentProject.Path & "\" & db)
> >     For Each doc In db1.Containers(objtype).Documents
> >         Debug.Print doc.Name & " LastUpdate:" & doc.LastUpdated
> >         For Each prop In doc.Properties
> >             Debug.Print "  " & prop.Name & ": " & prop.Value
> >         Next
> >     Next
> > End Function
> > and call that with something like: GetObjects "test2.accdb", "forms"
> >
> >
> >
> >
> > On 13 Oct 2022 at 22:46, McGillivray, Don wrote:
> >
> > > Hi Arthur,
> > >
> > > I just ran this within a database and got a list of all of the forms
> > > and reports in the container.  You should be able to aim this at your
> > > remote DB as the target just as well.  If you want to see the
> > > attributes (data source, controls, etc.) of the form/report, you'll
> > > need to open it first and then do operations on the open instance.
> > > That can be done in code, too, once you have the object names from the
> > > container.  I don't think there's any way to see into a form or report
> > > except by opening it, but the containers object lets you get to the
> > > names of the reports and forms so they can be opened and interrogated.
> > >
> > > Function ShowMeTheFormsAndReports()
> > > Dim db As DAO.Database
> > > Dim doc As DAO.Document
> > >
> > > Set db = CurrentDb()
> > >
> > > For Each doc In db.Containers("forms").Documents
> > >
> > >     Debug.Print doc.Name
> > >
> > >     'To open the form:
> > >     DoCmd.OpenForm doc.Name, acDesign, , , , acHidden
> > >     'do stuff with the open form
> > >     DoCmd.Close acForm, doc.Name, acSaveNo
> > > Next
> > >
> > > For Each doc In db.Containers("reports").Documents
> > >     'do stuff with reports
> > > Next
> > >
> > > Set db = Nothing
> > > End Function
> > >
> > > - Don
> > >
> > > -----Original Message-----
> > > From: AccessD
> > > <accessd-bounces+dmcgillivray=ctc.ca.gov at databaseadvisors.com> On
> > > Behalf Of Arthur Fuller Sent: Thursday, October 13, 2022 2:00 PM To:
> > > Access Developers discussion and problem solving
> > > <accessd at databaseadvisors.com> Subject: [AccessD] Call a function in
> > > an AccDb from outside it?
> > >
> > > I'm still working on my problem of opening an AccDb within a running
> > > one. Thanks to Stuart, I now have that part working beautifully. But
> > > as they say, inside every beautiful solution lurks a monster ready to
> > > bite you.
> > >
> > > So I've got my utility able to browse for a database to open, then
> > > list its TableDefs and QueryDefs. I want to move on to be able to
> > > process its forms, but I can't get at AllForms. Is there any way to do
> > > this?
> > >
> > > Failing that, I thought that maybe I could write a function inside the
> > > "target" db (the one opened within my utility) and maybe call it from
> > > the utility DB? Is that possible?
> > >
> > > --
> > > Arthur
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com
> > > https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdata
> > > baseadvisors.com%2Fmailman%2Flistinfo%2Faccessd&data=05%7C01%7Cdmc
> > > gillivray%40ctc.ca.gov%7Cc3af3faf74c74775c32208daad5dfe64%7C78276a93ca
> > > fd497081b54e5074e42910%7C0%7C0%7C638012916459722126%7CUnknown%7CTWFpbG
> > > Zsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%
> > > 3D%7C3000%7C%7C%7C&sdata=SKCLQdhGUog%2Fb2v8aT0cLpzfixw6Fh6A6aN1UjF
> > > OxVg%3D&reserved=0 Website:
> > > https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.d
> > > atabaseadvisors.com%2F&data=05%7C01%7Cdmcgillivray%40ctc.ca.gov%7C
> > > c3af3faf74c74775c32208daad5dfe64%7C78276a93cafd497081b54e5074e42910%7C
> > > 0%7C0%7C638012916459722126%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDA
> > > iLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sd
> > > ata=UUbLYPanNL6dBv3fc5yfpO6QrLr24Sat4Y%2B963Jy6c4%3D&reserved=0 --
> > > AccessD mailing list AccessD at databaseadvisors.com
> > > https://databaseadvisors.com/mailman/listinfo/accessd Website:
> > > http://www.databaseadvisors.com
> > >
> >
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
>
>
> --
> Arthur
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>


More information about the AccessD mailing list