Calling Suer Defined Functions From Within Access Query... And More!
Nov 17, 2004
Hi all,
I have quite a large select query that pulls in Date values from different tables. The end result is a list of records, where each record has 7 types of dates, put in columns A, B, C, D, E, F, G. What I need to do is, for each record to compare dates in those columns and put the LATEST one of them in the column MDATE.
I've tried using IIF function, but it grows exponentially with the number of values involved, and it can only handle 5 values before its cause error "too large". Alternatively I thought I could write a function to return the max date and call it from within the query, something along the lines of "select *, fnMaxDate(A, B, C, D, E, F, G) as MDATE from tblBLAH etc". The function is:
----------------------
Public Function fnMaxDate(a As Date, b As Date, c As Date, d As Date, e As Date, f As Date, g As Date) As Date
Dim Temp As Date
Temp = Nz(a, "01/01/1901")
If Nz(b, "01/01/1901") > Temp Then Temp = b
If Nz(c, "01/01/1901") > Temp Then Temp = c
If Nz(d, "01/01/1901") > Temp Then Temp = d
If Nz(e, "01/01/1901") > Temp Then Temp = e
If Nz(f, "01/01/1901") > Temp Then Temp = f
If Nz(g, "01/01/1901") > Temp Then Temp = g
fnMaxDate = Temp
End Function
----------------------
I've put a break at the start of the function, to see what it'll come up with but when running the query it didn't appear to call it. All values in MDATE where #error.
Can someone advise me, please, on the best way of picking the LATEST date? I'd also appreciate it if you tell me why the function didn't get called, as I was quite certain it is possible to call user defined functions from within the query.
I am at the last phase of producing an extensive analysis report. The last calculation I need to the query QryCom_CalculationFinal gives me the "Too many fields defined" error. I have verified that "Ps_Score" calculation push the system into overload, as QryComp_CalculationFinalPrt01 without this calculation works fine.
I copied some VBA from one database to another. I didn't change anything and I am able to run it fine in the first database. But in the DB I pasted it to, I am received a Compile Error message with the XlApp As Excel.Application area highlighted.
Function OpenAutoCount() Dim xlApp As Excel.Application Dim xlWB As Excel.Workbook
This is giving me the error 'User defined type not defined'. I know I have to set something in a list somewhere but have forgotten how to do that. Where to go, and what to set?
On Compiling my assecc database VB code I get the following error message "User defined type not defined". I understand it is beecause I have not declared the Variable Type, but have no idea to exactly which part of the code the error is referring to.
How do I find out WHICH User defined type is not defined, especially when I have not got any (or do not want to use any) user defined types?
Thank you in advanced programming wizards. Kind regards, Adam.
Hello, I have the following code and i don`t know what's wrong Private Sub cmdCautare_Click() Dim strSQL As String, strOrder As String, strWhere As String 'Dim dbNm As Database 'Dim qryDef As QueryDef 'Set dbNm = CurrentDb() strSQL = "SELECT DOSARE.DosarID,DOSARE.DenumireDosar,DOSARE.CodDosa r,DOSARE.DataDosar,DOSARE.Denumire,DOSARE.Data,DOS ARE.Stadiu FROM DOSARE" strWhere = "WHERE" strOrder = "ORDER BY DOSARE.DosarID " If Not IsNull(Me.txtDenumire) Then strWhere = strWhere & "(DOSARE.DenumireDosar) Like '*" & Me.txtDenumire & "*' AND" ' " End If If Not IsNull(Me.cmbStadiu) Then strWhere = strWhere & " (DOSARE.Stadiu) Like '*" & Me.cmbStadiu & "*'" End If DoCmd.Close acForm, "frmPrincipal" DoCmd.OpenForm "frmRezultateCautare", acNormal Forms!frmRezultateCautare.RowSource = strSQL & " " & strWhere & "" & strOrder End Sub Here: Forms!frmRezultateCautare.RowSource = strSQL & " " & strWhere & "" & strOrder The error is the following "Application-defined or object-defined error"
Can anyone tell me how on a macro to call another application. I am trying to open up a mainframe session so need to run something like c:mainframe.rsf???
I am having a heck of a time getting a Dell laptop with a WIRED connection to connect to an Access 2007 database.
After foolishly connecting to this database wirelessly, I took the wise advice of members here to never connect an Access database using a wireless connection due to Access' fragility.
But now, even when this laptop is wired to the network, it takes a VERY long time to reach the database. And lately, it fails to connect due to a network failure.
The database is hosted on a Windows Vista Home Premium OS. Two other XP SP2 machines can see and connect to the database perfectly. But this laptop (also Vista HP) cannot see/connect to the database.
I'm totally stumped! I have no idea as I'm not really sure about Vista. I know that Home Premium has much better network access than Home Basic, but this type of simple connection shouldn't be so burdensome.
Has anyone else had this problem? If not, can anyone suggest a route to take ?
When I click a button, I am creating a table for a mailmerge and then calling the document that merge is in so I can write letters.
Everything works properly except the line for calling a document. I've messed with it in several ways but right now it tells me I need an equal sign. Can someone who actually knows VB (I'm just pretending! ) look at this and tell me what might be wrong?
Shell("C:Program FilesMicrosoft OfficeOffice10WINWORD.EXE", "\documentsOfficesJudicial & Court ServicesJudicial CollegeShared Project FoldersTemplatesLetters & AccessoriesConf Letter Mail Merge.doc")
My title may not accurately express my question. If you can suggest a better way to do this, please feel free to elaborate.
Within Access, I have an "Invoice Number" table, with a single field containing a number. I have a function that accesses the table, increments the number and returns it to the invoice number field.
I need a way to perform this same function to the same table from within WORD.
Hi All Nice to find a forum which helps ppl new to VB access 'like me' :). I appreciate any help in this regard. I generated a report from a query. I would like to modify this report by adding parameters pertaining to 'another' query (say query num 2). There is no relationship between these two queries. How do I call the 'other' query (query num 2) thru VBA and modify its parameters.
I'm having problems calling a simple query from the VBA associated with one of my forms. The code goes thus:
Private Sub Form_Current()
Dim rs As Recordset Dim db As Database Dim qryMaxAlp As QueryDef
If Me.NewRecord = True Then 'query database here and find out next alp_key Set db = DBEngine.Workspaces(0).Databases(0) Set qryMaxAlp = db.QueryDefs("qryMaxAlpKey") Set rs = qryMaxAlp.OpenRecordset() Else
End If End Sub
The problem occurs on Set qryMaxAlp = db.QueryDefs("qryMaxAlpKey") where I get the error "3265 Item not found in this collection". However the query does exist, and when I run it independantly works fine (it brings back the maximum primary key of a linked table.
I've written a function which opens the Outlook GAL dialog, allows users to select recipients and passes back a 2-D array (recipients and type i.e. To, CC or BCC).Here is the code :
Code: Public Function GetContactsFromOutlookGAL() As Variant Dim appOutlook As Object ' Outlook Application Dim objNameSpace As Object ' Outlook NameSpace Dim objSelectNamesDialog As Object ' Outlook Select Names Dialog
[code]...
The only problem I have is that when I 'display' the SelectNamesDialog, it doesn't make it the active window and bring it to the front - it just opens the dialog in Outlook and you have to navigate to the main Outlook window to find it.I'd like for the dialog to 'popup' - ideally, without the main Outlook window dragging along behind
I believe it's possible (judging from this article) to achieve this using API's - specifically, a combination of FindWindow (to retrieve the window handle) and ShowWindowLong (to set it to a topmost window in front of all other windows).
I have developed a MS Access database which uses several functions such as DateDiff and inStr. When I use these function on my machine the database runs fines and the values are calculated.
However the database I have developed is not for my computer and when run on this one computer produce some errors (The date function is mentioned). I believe this is some sort of security issue but I cannot be sure.
Both computers run the same version of Office. Does anyone have any ideas.
I have developed a MS Access database which uses several functions such as DateDiff and inStr. When I use these function on my machine the database runs fines and the values are calculated.
However the database I have developed is not for my computer and when run on this one computer produce some errors (The date function is mentioned). I believe this is some sort of security issue stopping her running the functions.
Both computers run the same version of Access. Does anyone have any ideas.
My access installation opens databases reasonably well. I can create databases, add tables, etc. However, I cannot:
1) Add a command button or data-related fields to a form: the "command button wizard" stops responding on the first screen. If I click "Cancel", the button depresses, but the wizard doesn't close. 2) open the "Linked table manager": Access crashes 3) import an Excel spreadsheet: Access crashes
I suspect these might be related.
I've tried these with various databases, some on my local C drive. I have also tried these with various excel files. Not being able to add data items to forms is particularly irritating -- I don't want to build my own front end (that would sort of ruin the purpose of using Access, except that it happens to be a database already on my desktop).
One other thing -- when I start up a database, it always gives me an initial "Installing components" message. This occurs similarly for other MS office applications as well. I don't know whether this is related. I do have admin rights on my local machine, and have tried the "Repair MS Office" function in the Control Panel.
I don't necessarily expect an "answer", though some advice on how to proceed would be great.
I'm trying (without luck) to use some excel functions within an access query (namely NORMSDIST and NORMSINV). Error is being returned 'undefined function'. I have switched on the MS Excel 11.0 Library. Anybody any ideas? Thanks
So Access was unable to manage the amount of content that I needed to produce in a single report. The reports contain 12 charts/graphs all of which I needed on separate pages (one chart per page). As such I could not create large enough charts in access to fit to each page, as Access limits the amount of space one can use in a report.
I downloaded Microsoft Reports Builder 3.0 and built my reports as needed and can generate them as desired at current. I'm wondering if there a way to call that RDL file I created to generate my reports from a form control button in Access?
I’m running a small web-hosting service, and my password-database is in Access 2000. I have trouble making to functions, both e-mail functions:
1. Send e-mail with password A function that sends one mail to a single e-mail address containing a password. Based on a form or query.
2. Start outlook and export mail address Just like the HTML code MAILTO:adress. I can’t figure out how to get this to work. The address is a variable. Get the value from the form or a query.
First of all, which technique should I use? Macro or script? Second, how do I use it?
Our Access database is getting a bit sluggish when loading/running reports. My mate said to me that the Access database that our 100+ users at work use to run reports should be "stripped back" to speed things up and to stop unnecessary actions running when they aren't needed. He pointed me in the direction of File>Options. Users don't edit data from this database, just to run preset reports. They have no editing capabilities either.
A front end written in Access (back end mySQL). I have made a .mde file out of this front end. There are a number of MS Word documents used (as merge documents) for running reports and letters that are linked to queries in the database. However, I can only link these documents to the original .MDB file as you can't link to the queries ni the .mde file.
This works fine until you have a query that requires a parameter from a form. The user will have selected the parameter from the .mde version of the front end that they are using but the query which is being called from the .mdb version (by the Word merge document) can't see this parameter because it is a totally separate database.
How can I get around this problem?
Sorry this is a lengthy post, hope it makes sense.