first i must thank everyone here. this forum has proved invaluable for some of the simple databases i have created. now i have a problem which i cannot find the answer for.
i'm using access 2000
basically i am creating a cemetery database so most of the information i'm dealing with is duplicated. to create a unique record i have six primary keys on the one table. ie people with the same name, age, and birthday can be buried in the same grave.
anyway i need to do a wildcard seach from a form (QBF) based on surname and firstname. i have downloaded the code below and modified it:
Private Sub cmdsearch_Click()
'Set the Dimensions of the Module
Dim strSQL As String, strOrder As String, strWhere As String
Dim dbNm As Database
Dim qryDef As querydef
Set dbNm = CurrentDb()
'Constant Select statement for the Query definition
strSQL = "SELECT searchtestdata.Surname; searchtestdata.Firstname; " & " FROM searchtestdata"
strWhere = "WHERE"
strOrder = "ORDER BY searchtestdata.autonumber;"
'Set the WHERE clause for the QueryDef if information has been entered into a field on the form
If Not IsNull(Me.txtsurname) Then '<--If the textbox txtFName contains no data THEN do nothing
strWhere = strWhere & " (searchtestdata.Surname) Like '*" & Me.txtsurname & "*' AND" '<--otherwise, apply the LIKE statment to the QueryDef
If Not IsNull(Me.txtfirstname) Then
strWhere = strWhere & " (Searchtestdata.firstname) Like '*" & Me.txtfirstname & "*' AND"
'Remove the last AND from the SQL statment
strWhere = Mid(strWhere, 1, Len(strWhere) - 5)
'Pass the QueryDef to the query
Set qryDef = dbNm.QueryDefs("quesearchtestdata")
qryDef.SQL = strSQL & " " & strWhere & " " & strOrder
'Open the Query
DoCmd.OpenQuery "quesearchtestdata", acViewNormal
and tells me either that i have "run-time error 3142 - characters found at end of SQL statement" - this is the error i am recieving at the moment, or more usually " run-time error 3141 - which tells me the SELECT - WHERE statement is wrong.
i am definetly no expert in VB - i am only just starting using it.
so guys any idea?
thanks in advance
Hi, Many thanks to those who helped with my last couple of problems.
I've allmost completed my project now and am debugging.
I've found that in order to close one of my forms, which has combo boxes on it, I need to have no values selected in those combo boxes. Could someone give me the visual basic script (or any alternative meathod) for resetting the combo boxes to their default values; i.e. nothing selected in them!
Here is something I wonder if it has already existed or been asked before, a program or an add-in feature that can compile an Access database (including forms, reports, tables...) to a stand-alone .exe application, just like Visual Basic does. The reason why I think it's doable is because in Access, we use VB codes anyway and it wouldn't need to be rocket-science for Access to do something like that or this would be an improvement for future versions.
There are plenty of advantages of going from an Access form to a stand-alone app, i.e. we wouldn't need codes to hide background and menu or status bar; we wouldn't need to disable mouse-scroll or prevent users to go back and accidentally delete past records; or we wouldn't need to worry about users seeing your terrific coding techniques and on and on.....Agree that all these can be done within Access but imagine how much time it'd save you from not doing all these things.
I have a user running office 2007, with a program called Dev_Tracker wthat uses a front end of access 2000. This program allows a user to log in their project hours. The skinny is that when they lauch the program and try to make an entry they receive this error message:
Run-time error 3075
syntax error in date in query expression tbl_timesheet.weekof=#2.4.2008# AND tbl_timesheet.user=dworden.
If the user logs into another machine it works fine so it appeare to local to the machine. I have cleaned the registry and done other tweaks but no luck.:confused: Any ideas would be helpful.
hi... i have a form that display things in a table in access. when program the form to delete a query it deletes it but does not do rs.movenext what i want to do is the form to display the next set of data from the database. i am using dao.... please help me!!
I'm getting the following error when I try and open my database: "The visual basic for applications project in the database is corrupt". I'm pretty sure I know the answer, restore from a back up. The only problem is that the sytem admin usually backs the file up every night and he has not gotten a valid backup for the past week. If any one has any ideas, besides restore, please let me know. You would save me a lot of extra work.
There is an online form which we need to fill out for each of our inventory units. This form has several dozen fields though. We have to fill each one out for every unit that we ship (which is about a hundred a day).
But the good news is, about 25 of these 30 fields are always filled in with the same value (our name, address, city, state, zip, insurance, insurance no, carrier, carrier no, etc).
What we want is a way to fill out these fields for us automatically, and all we have to do is type in the remaining 5 fields ourselves.
My temporary solution was to create a form with 5 fields and a Submit button. Then using AppActivate "Inventory Adjustment - Microsoft Internet Explorer", we would use the SendKeys function and virtually "type" in the 5 variable values and the 25 other "hardcoded" values, using the Tab key to move in between fields.
However, we have encountered some issues using SendKeys. For one, the cursor doesn't always start in the correct place, and the fields become horribly offset and skewed. Also we notice that sometimes the cursor moves "too fast" apparently and skips pasting some of the values (an issue we tried to resolve by using "wait" commands, but it didn't help consistently enough).
Is there a better way to use Visual Basic to fill in fields in an Internet Explorer window? :(
I have an access Query(named newSerial) : SELECT TOP 1 (Productbase.Serialnumber+1) AS Expr1 FROM ProductBase ORDER BY (Productbase.Serialnumber+1) DESC;
I want to access this new value. Its not a key since an autonumber may be any number. When I create a new product. How do I get this value inside a form? It works fine when clicking on it. But if I use an unbound box I get 1 as result and not like 76067 which it should be. If I click the query in access it works fine and show 76067. I tried: outbox=Expr1 ' gives null 'or outbox=[newserial].[Expr1] ' which gives "Access cant find the field "|" refered to you in your expression"
What should I write? Whats the correct expression?
I am in the process of re-writing an Access system that was created with 100% macros. I need to convert the custom menus that were created with macros to vb code. I tried to convert the code to modules, but I can tell that is not the path. Does anyone have a simple example? For instance, the first custom menu is just File, Exit.
Hello, I am hoping someone might be able to help me out. I am trying to create a delete query in VB for access. I have managed to get it to run the delete query, but I would like to program in the responses to the following questions: "You are about to run a delete query that will modify data in your table. Are you sure.... Yes" "You are about to delete X row(s) from the specified table. Yes"
Here is what I have so far:
Private Sub Command32_Click() DoCmd.OpenQuery "DELETEQUERY", acViewNormal, acEdit End Sub
Trying hard to create new database. After editing VB code error message appears
"error accessing file, network connection may have been lost" tables and forms are set in one file. This has occured numerous times. If I had hair I would be pulling it out . It seems to lose the code for a form. If you delete the form it remains in the Project Browser. There seems to be a "remove icon" but it is deactivated. Any ideas...Im desperately running short of time, any help will be gratefully accepted
I am developing a database where I need to print various forms/reports but I need one report to go to a label printer and another to an A5 printer and another to an A4 colour printer. All I know is the "DoCmd.PrintOut" method but I don't know how to specify which device ?
I am not new to Access, however I am just starting to get to the point where I need visual basic to complete some things I want to try. My question is, how do I code a button (or modify an existing one) in my form that will email the same output I get when I use a Print Report button. Here is what I have from my standard buttons:
Private Sub Save_Svc_Record_Click() On Error GoTo Err_Save_Svc_Record_Click
I want an append query to add records to one of several tables, depending upon the value of a variable entered into a form. This variable is also used to select the appropriate records. The query is invoked from the visual basic code behind the form.
Can anyone tell me how to edit the destination table from within the visual basic?
Anyone have any idea how or why Visual Basic would automatically round up a calculation. I have a formula that simply grabs the rate from a table and multiplies it by two. However, for some reason, it grabs the rate and then rounds it up to the nearest whole number. I have no Int or Fix functions at work, so I'm really confused at this point. Is there any way to stop this? Thanks =)
I have a form which I use for many different tasks, in order to save database size, reuse code and keep things at their simplest. Sometimes, I'll click a button to open the form which will only show specific filtered data in "Form" view, using a default "Dialog" border style. Sometimes, I click another button which opens the same form, filters different data and displays the form in "DataSheet" view, but this time, I want the borderstyle to be "Sizable".
What I need is a line of VB code which will force the form to open-up with "Sizable" borderstyle, regardless of the form's Design view settings.
Something that would look like this (which obviously doesn't work):
I'm doing some debugging over the phone.My friend has Access 2003.What does not work:When he codes the MID function in a query he gets an error like this:"Undefined function 'Mid' in expression."
In the Visual Basic editor, he gets the same error: MID is undefined.What DOES work:I walked him through the use of LEFT and RIGHT in the query and they work.In Excel, MID works.Might there be some odd ball Access configuration mess up, or maybe more likely, his Access installation is incomplete.
I have a fully operational Visual Basic program that uses MS Office XP and it's related MS Access. Because of security concerns, I recently upgraded to MS Office 2007 and MS Access 2007. I can open MS Access 2007 using the shortcut on the desktop and run any of the database queries. When I try to run the Visual Basic program (called prjPathfinder) and open Access 2007, it says "Error 5: The type initializer for prjPathfinder.Upgrade Support threw an exception". It then shows the first form in prjPathfinder but does not open Access 2007. What am I missing?
My boss wants me to program in visual basic, instead of using queries, a calculation between times, which values are gotten from a table. How do I perform a calculation between two fields from a table in code and what functions are there to calculate the amount of difference in minutes between times in visual basic? THANK YOU SO MUCH IN ADVANCE!
I have built a search form to feed information to a query. The form uses combo boxes tied to table values, and all have wild cards built into them so if the user leaves the combo box they get all the records. I also have to text boxes representing start date and end date. I would like to allow the user to leave these blank and get all there as well. I have been looking through my one Access book, as well as searched all over the internet, but I cant seem to find the way to do this. My filter criteria for the text based combo boxes are like this:
Code: Like "*" & [Forms]![ReportDesignF]![Company] & "*"
My filter criteria for the Start and End Dates looks like this:
Code: Between [Forms]![ReportDesignF]![StartDate] And [Forms]![ReportDesignF]![EndDate]+#11:59:59 PM#
In this case of the user leaves the date values blank, the query returns nothing. I would like to return all dates if that is the case. I am assuming it is my lack of knowledge of wild cards and how they work with date values.