I generally use Cognos for my queries, so the overly user friendlyness of access is confusing me and im not proficient enough in sql to just go in and edit the code...
How do i generate a query that groups data in unique ways in the result, but does not change the data in the originating table.
For example:
I have the column tbemployment.dept . In a crosstab query i want everybody that isnt tbvoter.dept='BELLS' to be counted as 'other'.
In Cognos i would do this in the 'data definition' window for that field and use 'if (tbvoter.dept<> 'BELLS') then ('other') else (tbvoter.dept)'
I am developing a calender to display HOTEL room occupancy (past,present) and combine with future "outlook" dates and 1/0 values from active registrations that go beyond the present date.
I am working with MS ACCESS 2007. My problem is ONE SPECIFIC QUERY AND IIF STATEMENT. I want to concatenate some text (using &) along with numbers converted to text (using the CSTr function). I am using iif function and I want to use the full text string as a variable argument to be executed in the iif function. The result of the &concatenate is a text field like [p1] or [p2] or [p#] with numbers 1-31.
But, I do not want the final result as the argument. I want the query and iif to use the string expression written into the argument as the variable argument that can be calculated based on OTHER numbers that change everyday in the daily run of the calender.
The field in the statement [calc number] is a date conversion factor that changes everyday.
I want the iif statement to execute using the string as a variable argument. I am writing only within the QUERY to define the query object. I am not writing into any SQL module or code. My field definition and iif statement is below (calc number changes everyday)
I do not have greater-than key on this international keyboard !
When I use this in an update query, I get format conversion error. When I use the same definition in MAKE-TABLE query, it gives the resolved value "[p1]" for the value of [CalDate18] ......... that is not what I want.
I want the string to be taken literally and executed. Seems there may be a special character to precede the argument or WRAP the argument such as done in Excel. Example # "[p" & [calc number] & "]" #
I am feeling around my database which was upgraded from Access 2003 to Access 2013. I am getting error messages and I was trying to figure out why a particular query gave an error. I clicked on "data definition" and I think it opened a new query, but it will not let me close it. The message is invalid SQL statement, expected Delete, Insert, Procedure, Select or Update. There is no way to cancel this.
I had to use the task manager to close the database, not what I like to do.
I am creating a database for my school and I can't create a relationship between two tables. There are only two tables and I need them to be one-to-many however it says there is an 'invalid field definition'. I have attached the database.
I am trying to write some fields to an access table definition. It is working for the most part except that I want to write some of the fields as dbText and others as dbDate. For some reason it is writing all of them as dbDate and I don't know why.
Code: additionalColumns = Array("a","b","c","d","e","f") 'add additonal columns to report For i = LBound(additionalColumns) To UBound(additionalColumns) MsgBox additionalColumns(i) If additionalColumns(i).Value = "a" OR "b" Then Set columnNames = xlsht.Cells(1, additionalColumns(i)) Set FieldName = tb1.CreateField(additionalColumns(i), dbDate, 10) tb1.Fields.Append FieldName Else Set columnNames = xlsht.Cells(1, additionalColumns(i)) Set FieldName = tb1.CreateField(additionalColumns(i), dbText, 150) tb1.Fields.Append FieldName End If Next i
In this thread: http://www.access-programmers.co.uk/forums/showthread.php?p=549287#post549287
I had a problem. Now I decided to just make two tables, one with sales for a "passer by" and/or directly to a client without a case/labour costs. And a table for sales in relation to a case with labour costs etc. I guess I still m*ssed up on that part and have to make do with that decision (kind of like I depicted in the photoshopped image).
For invoicenumbers I want to use DDMMYYYYHHMM. When adding that field to the design of a table, how do I go about that? Do I just use a Text field and create an input mask for that? Or do I need to use a number format with a certain input mask? Or would it be wiser just to use the date/time type of field and give it a new inputmask? I guess 000000000000 would be the one for that, right? Although I read the help file I do not know if I should use ;0; behind those first group of zero's or not. Yes it is a mandatory field, but it will fill in itself as soon as a product is typed in in the product/invoice list, with a default value of the current date and time.
I need to brush up my knowledge on the formatting for that so that 28-05-1975 19:55 will be displayed and stored as 280519751955. Or is that also done automatically by using that input mask? Or will that give an error when Date or Time() etc. is used for that field in VBA?
Just a few questions I need some help with, I've been trying some stuff but it really doesn't "stick".
And if anyone has some time, I could really use some general advice/ideas for setting up the invoicing part differently for a new version of the db yet to come in the future.
I am using Windows 8.1 64 bit system. Into attached access file (OfferStudy.accdb) ,trying to load an activeX TreeView control by defining into a form module. First, I created an empty form and activeX Treeview control.When I define tv variable As TreeView as created in application, it is changing as Dim tv As treeView instead of TreeView. After my code is completed,an error message ("user-defined type not defined") is returning as shown in attached (DebugError.png)file.
I suppose that there is some conflict on creating activeX control on my Access 2013 application.
I have a query based on a query, when I added a new field to the base query, this field did not appear in the list of fields in the design definition when I try and add to the upper query. It just shows the original fields only.
Same thing happened in a field on a report - I had to delete the field and create it again...
(named: Invalid Field Definition - Unable to set up cascade update but I have done what the moderator advised and have not been able to fix a very similar problem.
I have planned a database and must adhere to the plan or change it and basically I initially said that I would like to enforce referential integrity to synchronise my tables and I would also like to cascade update and delete to save input time because changes will be automated between table (where fields are connected.).
I have attached a plan I did if that makes the purpose of my database clearer.I have attached my database and have established the relationships* without referential integrity enforced I would like between my tables but don't know how to make them one-to-many relationships nor can I enable cascade update or cascade delete or enforce referential integrity.
I am new to databases (and to this forum) and have been promised by my line manager that I won't have to specialise, I don't think I have created the relationships but they are supposed to be between Vehicle ID and Hire Number, and Customer ID and Hire Number.
I am very inexperinced with Access, please be kind. My problem is that from the form view the simple division of 2 #'s are placed in the correct text box I selected, but I am unable to get the value to enter into the data table. Please help.
I am just learning how to use Access and have created a basic form. I am stuck though on getting my form to calculate the Age (from Date of Birth) in Years and Months.
The info on this forum I have tried the following Expression:
=DateDiff("yyyy",[DoB],Date()) & " years and " & DateDiff("m",[DoB],Date())-(DateDiff("yyyy",[DoB],Date())+Int(Format(Date(),"mmdd") & lt;Format([DoB],"mmdd")))*12 & " months "
But my problem is that it tells me:
''The expression you entered contains invalid syntax You omitted an operand or operator, you entered an invalid character or comma, or you entered text without surrounung it in quotation marks''
Can anyone let me know what error I've made and how to fix it? It would be much appreciated. Thanks
I am just learning how to use Access and have created a basic form. I am stuck though on getting my form to calculate the Age (from Date of Birth) in Years and Months.
The info on this forum I have tried the following Expression:
=DateDiff("yyyy",[DoB],Date()) & " years and " & DateDiff("m",[DoB],Date())-(DateDiff("yyyy",[DoB],Date())+Int(Format(Date(),"mmdd") & lt;Format([DoB],"mmdd")))*12 & " months "
But my problem is that it tells me:
''The expression you entered contains invalid syntax You omitted an operand or operator, you entered an invalid character or comma, or you entered text without surrounung it in quotation marks''
Can anyone let me know what error I've made and how to fix it? It would be much appreciated. Thanks
I'm facing an issue when I'm creating a Data Macro After Insert in Access 2010. In the value for the SetField, I use the expression builder. I wanted to use the DateAdd function but it not showing, also I cannot see my user define function (Module).
This behaviour seem to occur only in the instance of Expression Builder while in the Data Macro, everything is fine anywhere else including macro.
can someone tell me why I getting this error when I try and run this query:
select distinct case_id from NOLDBA_RPT_CASE_CHG_IND G
where sys_curr_date between '01/01/2005' and '12/31/2005' and aft_case_status = 'O'
and not exists ( select 1 from NOLDBA_RPT_CASE_CHG_IND X where X.case_id = G.case_id and X.aft_case_status = 'C' and X.sys_curr_date = G.sys_curr_date )
I would be much obliged if someone would help me here.
I have the following code which takes a value from a combobox and uses it in an sql statment to find a certain record and then it populates the GUI with that recordset , however I get the following error "Data type mismatch in criteria expression"
Please help
CODE:
Private Sub cmdSearch_Click()
Dim sql As String Dim rsUpdate As New ADODB.Recordset
On Error GoTo DbError
sql = "SELECT * FROM ServiceReport WHERE CallReferenceNo= " & Me.cboSearchRef.Value
Hello all, I'm quite new to Access. I've read many Access tutorials and site but I have yet to found the solution for my problem. So here it is (pardon my english):
Field AmountTotal is =(Nz([AmountSubTotal])+Nz([AmountSH])-Nz([Discounts]))
I manually input AmountSubTotal, AmountSH and Discounts. I expected an automatic calculation for AmountTotal.
In "Form view" I get the result of AmountTotal that I wanted. But the calculation result doesn't get recorded in my field data table AmountTotal. It just shows blank.
How do I record this automated results into my original table?
hi guys, here is my problem.the error in the title appears when i try to update a record.the field MODON in the table is defined as a short date and an input date 00/00/0000.Here is the code where i insert and update the records: Option Compare DatabaseOption ExplicitPrivate Sub Command4_Click()On Error GoTo Err_Command4_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmCalendar" DoCmd.OpenForm "frmCalendar", , , , , acDialog, Me.name & ";modon"Exit_Command4_Click: Exit SubErr_Command4_Click: MsgBox Err.description Resume Exit_Command4_Click End SubPrivate Sub Command15_Click()Dim str1 As DateOn Error GoTo Err_Command15_Click 'DoCmd.SetWarnings False If DCount("[comment]", "comments", "[change_id]=" & Me.Task_Num & "") = 0 Then MsgBox "insert" DoCmd.RunSQL "insert into [comments] (change_id,modon,comment,modby,modif) values (" & Me.Task_Num.Value & ",'" & Me.modon.Value & "','" & Me.Text10.Value & "','" & Forms!Login!username1 & "','" & Now() & "');" DoCmd.SetWarnings True Else MsgBox "update" MsgBox DLookup("[comment]", "comments", "[modon]='" & CStr(Me.modon.Value) & "'") DoCmd.RunSQL "update [comments] set comment='" & Me.Text10.Value & "' where change_id=" & Me.Task_Num & " and [modon]='" & Format(str1, "dd/mm/yyyy") & "';" DoCmd.RunSQL "update [comments] set modby='" & Forms!Login!username1 & "' where change_id=" & Me.Task_Num & " and [modon]='" & Me.modon.Value & "';" DoCmd.RunSQL "update [comments] set modif='" & Now() & "' where change_id=" & Me.Task_Num & " and [modon]='" & Me.modon.Value & "';" End If DoCmd.SetWarnings True Exit_Command15_Click: Exit SubErr_Command15_Click: MsgBox Err.description Resume Exit_Command15_Click End SubPrivate Sub Command16_Click()On Error GoTo Err_Command16_Click DoCmd.CloseExit_Command16_Click: Exit SubErr_Command16_Click: MsgBox Err.description Resume Exit_Command16_Click End SubPrivate Sub Command4_Exit(Cancel As Integer) If IsEmpty(Me.modon) Then MsgBox "Please, select a date for the minute" Me.modon.SetFocus Else Me.Task_Num.Visible = True End IfEnd SubPrivate Sub Form_Load() Me.Text13.Visible = False Me.Text10.Visible = False Me.Label12.Visible = False Me.Label9.Visible = False Me.Task_Num.Visible = FalseEnd SubPrivate Sub task_num_AfterUpdate() If IsEmpty(Me.Task_Num) Then MsgBox "Please, select a task Number" Me.Task_Num.SetFocus Else Me.Text13.Visible = True Me.Text10.Visible = True Me.Label12.Visible = True Me.Label9.Visible = True Me.Text13 = DLookup("[description]", "newchange", "[change_id]=" & Me.Task_Num & "") Me.text10 = DLookup("[comment]", "comments", "[change_id]=" & Task_Num & " and [modon]='" & Me.modon.value & "'") End IfEnd Subthx in advance....
I am trying to set a recordset, and I keep getting this data type mismatch error, but I cannot see what the problem is. Here's my code:
Set rstAccounts = dtbCurrent.CreateQueryDef("", "SELECT [Account ID], [Balance] FROM tblAccounts WHERE [Account ID]='" & txtAccountID.Value & "';").OpenRecordset
txt.AccountID.Value is 1, and when I hard code the value as 1 it works, so I'm not sure what the problem is. I've tried using CStr() to convert it to a string, CInt() to convert it to a integer (even though it already is one), with using both quotes, with only double quotes, and with only single quotes. It's driving me crazy, because i'm sure it's something really simple, but I'm not sure what else to try.
I've got a Table with a string of data delimited by an "*". The first part of the string before the "*" can be variable in length, so if I use a LEFT expression to break apart the 2 parts of the string on each side of the "*", my results are incorrect. In MS Excel, I can use the following formula to solve the problem:
=LEFT(B6,(FIND("*",B6)))
You are just substituting the number of positions with a Find command that looks for the "*", and returns anything left of the "*". Unfortunately, the brilliant programmers at Microsoft, once again, don't have an Excel function in Access. how to recreate that functionality in a table in Access?
The error I'm getting is "data type mismatch in criteria expression".
Private Sub BtnAddBooking_Click() Dim CustomerID As String Dim StaffID As String Dim intPos As Integer Dim strSQL As String Dim strSQL2 As String Dim BathValue As Integer Dim rst As DAO.Recordset Dim RemainingBookingExists As String Dim RemainingBaths As Integer Dim RemainingBathsExists As String
Code: SELECT prevwd([practice_bacs_submission_date])<Date() AS chase_it, practice_bacs.practice_bacs_submission_date FROM practice_bacs WHERE (((practice_bacs.practice_bacs_submission_date)>#1/31/2013#));
and in the query results I see 0 and -1 as expected for the 'chase_it' expression BUT When I add True (or -1, or 0) as a criteria for 'chase_it', I get the "Data type mismatch in criteria expression" error.So the sql that fails is
Code: SELECT prevwd([practice_bacs_submission_date])<Date() AS chase_it, practice_bacs.practice_bacs_submission_date FROM practice_bacs WHERE (((prevwd([practice_bacs_submission_date])<Date())=True) AND ((practice_bacs.practice_bacs_submission_date)>#1/31/2013#));
In case it's relevant, my function prevwd is:
Code: Function prevwd(dt As Date) As Date 10 On Error GoTo prevwd_Error 20 dt = dt - 1 30 While Weekday([dt]) = 1 Or Weekday([dt]) = 7 Or IsBankHoliday(dt)
[code]...
and this function is used extensively and always works perfectly. I have tried using DateAdd instead of dt = dt - 1, but that made no difference.
I am creating a simple query in a farm audit database.
In criteria of the customers field, i have entered "Farmer One" as this is the customers data which I want to retrieve and in the Totals section I have changed the setting to Where instead of group by, but I am still getting "Data type mismatch in criteria expression" popping up.why this is?