Modules & VBA :: Recognize Which Button Was Clicked
Dec 1, 2014
I'm designing a form which will display a lot of employee information in a tabular layout. Users need the option to update a lot of these controls, but I want them to do that on a separate form. I'm wondering if VBA can determine the position of a clicked button within the tabular layout.
Can I have some code which determines that, for example, the second button across on the 3rd row is clicked and read the corresponding label?
I was planning to have each button just call a function passing an argument, but since all these buttons will be labelled "update" it could get a bit confusing if I need to re-arrange the controls. So I wondered if what I describe above is possible, and which VBA functions I would need to look into if so?
i've got a data entry form. when i click the button add all the other buttons go grey, i am in mode "New" also i am able to add, edit, records in this state, when i press save i want the supplierID field to automatically populate itself with the next SupplierID record THAT IS EMPTY. So say that my last record was ID number 45 then when i click add on my form and go into "New" state the SupplierID field automatically populates itself with "46" btw this is all an unbound form,
I'm quite new to Acces (2010) . Currently, I'm working on a form in which certain fields are set to invisible. I'd like to toggle fields to visible based on the button clicked.
Example: Field 1: O No O Yes --> When No is clicked Field 2 (containing a date) becomes visible --> When Yes is clicked Field 3 and 4 (both yes/no fields) become visible
I have a form, with just two buttons, say "Tyre" and "Engine". These buttons open the same form, say frmCar.
What I want to do is when I click the "Tyre" button, a tbo in the frmCar to get as value "Tyre" and when I click the "Engine" button, the same tbo in the frmCar to get the value "Engine".
I have a subform [ctrlLogDetail] on a parent form [incidentdetails] that is opened by the user when they click on a button on a navigation form. These forms are used for a variety of purposes. The problem I'm having is that the user needs to be able to select an incident number and go to the appropriate form (I accomplish this by using this code: DoCmd.OpenForm "IncidentDetails", acNormal, , "Activity_ID = " & Me.cboINum in the on click event of the button.) This works appropriately. The subform is also appropriately linked to the parent form.
I need an additional line of code to have the subform go to a new record when the form opens to an existing incident number. Since I use this form/subform when doing different tasks, having the Docmd.RunCommand acCmdRecordsGoToNew in the Form on open event isn't optimal.
I only want the LogDetail subform to open to a new record when the user wants to add an entry, but not when they need to edit a specific entry. What is the appropriate syntax to use either in the openargs event of the openform command or elsewhere in the procedure so that the gotonew function on the subform only occurs when this button is clicked? I'm having difficulty getting access to understand that I want the subform to open to a new record but not the parent form.
I have a table to store "issues" with fields Issue name(text), target date(date) and status (combo box-active & pending statuses). default status for new issue is active. when clicking a button i want to change the status of every record to "pending" status (combo box value should be pending) if the target date<current date.
I have used the code below to send an email automatically when a new record has been created. However I recently added the If Then statement to the code as you can see. The problem is that the email wont send because it says "There must be at least one name or distribution list in the To Cc or Bcc box". It is most likely saying this because it doesn't recognize "IT" in the txtDeparment combobox. How can I get it to recognize IT in the department combobox? The reason I am using an If Then is because I will make it send to different email addresses depending on what is in txtDepartment by using ElseIf
Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem Set appOutLook = CreateObject("Outlook.Application") Set MailOutLook = appOutLook.CreateItem(olMailItem) With MailOutLook .BodyFormat = olFormatRichText If Me.txtDepartment = "IT" Then .To = "my email" End If .Subject = "hi" .HTMLBody = "hi" .send End With
I am trying to get a Case Statement to evaluate multiple conditions. Example: below when I get diagnosis code 20400 and the age_at_diagnosis is 40 the code is basically ignoring the second condition of the Case "And rs![Age_At_Diag] < 18". How do I get the code to recognize both conditions?
Code:
Private Sub cmd_Update_Conditional_Codes_Click() Dim rs As DAO.Recordset Dim rs2 As DAO.Recordset
I have two command buttons having two textboxes to populate. The way I am going to populate the text for both the textboxes is same but on separate clicks. Is there way to find which button (or control) is being clicked in runtime. I think I have done it a long back but not getting right now (I had a gap in my career). The keyword sounds like some 'Defaultcodecontrol' or something like that only.
I have added a list box to a form with Single Selection mode on. Its purpose is to improve the interface. It contains items that represent all records. Clicking on the list box causes the form to jump to another record.
The problem is following: if I click on the List Box, it clears the selection and nothing is highlighted but it jumps to correct record. When I use standard record selection buttons, it highlights the correct items.
I read the index of selected item from .ListIndex property because Selected() does not work in a Single Selection mode. However, this is read-only property and I cannot use this to highlight the item back from VBA. But when I use Selected() it is not working. I mean when I click again on the same item it's selected. It's weird. I attached a simple database file with this problem.
The second problem is, when using standard record selection buttons, access iterates through all records and then jump to empty one. That is not like a new record. I don't know which event to use to control this situation. I would like to deselect all items, let user enter the data and re-query the List Box with a new record.
I have a onclick tied to a label (for decoration purposes) that when clicked it launches VBA that essentially updates a form. All that part works except it will not recognize any changed value of the field I was last in?
Just to try to explain best as I can what happens.
- Form gets opened - I change field (quantity field) - I click the Label - It reverts to pre-existing value.
if I click off of the text field first then do the onclick - it recognizes just fine.
When enforcing referential integrity, does access get angry about capital letters?Or just in general, if an address gets put in with a capital letter in one instance and then without in another does it make a difference?
I am trying to create a user-friendly database to enter invoice records (deductions and additions) for securities. I would like to be able to run queries with running totals from month to month inclusive (end total of one month = starting total of next month). I have already figured out how to create a running total; however, I have numerous "companies." Each record could be from any of 30 companies. When I add up the running total from say January 1 to February 28th, I get the additions and deductions of all the companies, not just the one I want. Inputting the companyID (example A110) in the query box only adjusts what is displayed, not the running totals that go by the total deductions from the records before that record (I assigned each record a "database ID" because dsum does not recognize dates in the criteria box, if I want to do a running sum.
I also was wondering if it would be possible to build forms with macros to create these queries in a user-friendly manner (so the company that I am interning for can create queries when they need them without me there).
I split my database. Then got the bright idea to rename them. Now when I launch the front end (which contains the forms, etc.), I get a message saying that it can't find my backed. I've tried renaming the back end back to its original name, but its still not working.
What is the best way to fix this situation? I was thinking about opening the front end, and re-importing the tables from the back end, or, breaking the links between the front end and back end. If I re-import, should I move stuff from the front end to the back end or vice versa?
I upgraded to Access-2010 and the Text File Import function will not recognize dates in the format YYYY-MM-DD. The import dialogue sees enough to recognize the field as a date, but then every date encountered is written to the Import-Errors table. This is true whether the file has a .txt or .csv extension. The actual file format is .csv.
I've been writing queries in the following format for years in Access 2003, but having recently transistioned to Access 2010, I've found the following sql doesn't work.transform
sum(s.value) SELECT s.sn, s.ln, s.pn, s.id, s.lat, s.point, s.supply_type, s.used, s.real, s.code, c.name FROM supply_points s , codes c WHERE s.code = c.code and s.id is not null and s.code = 1075 and s.month >=[forms]![main]![gppstart ] group by s.sn, s.ln, s.pn, s.id, s.lat, s.point, s.supply_type, s.used, s.real, s.code, c.name pivot s.month
In Access 2010, this query returns the following error message:the Microsoft Access database does not recognize '[forms]![main]![gppstart]' as a valid field name or expression
I have a small database for producing various financial reports, by date period (from/to). It works perfectly except when there are either no payment records or no receipt records for the chosen period. Naturally enough, MS Access comes up with the message "Database engine does not recognize 'payment' as a valid field name or expression" --- !!!
Is there some way I can tell MS Access that I don't mind if eg the payment column result is zero?
The structure of the table on which the report is based (via a crosstab query) is :
transaction date auto number ID transaction type (either payment or receipt, chosen by form's drop down box) - TEXT amount - CURRENCY receipt type - TEXT payment type - TEXT fundno - TEXT
The crosstab query design is as per the attached jpeg file
I've got this yes/no message box that deletes an appointment. When i click yes to confirm delete, the box just stays there. I have to click yes again before it works. Clicking no works fine. Its like its going round the else if statement for vbYes twice. Does anyone know why this is happening? Heres a snippet of the related code. Thanks in advance.
If myYesNoQuestion(strDelete) = vbNo Then myDisplayInfoMessage "Appointment kept on file" 'If the user decides not to delete the customer then appointment kept Calendar3.SetFocus 'Sets the focus away to allow the rooms to be disabled lstRoom1.Enabled = False lstRoom2.Enabled = False lstRoom3.Enabled = False lstRoom4.Enabled = False 'Disables the rooms again
ElseIf myYesNoQuestion(strDelete) = vbYes Then strSQL = "DELETE * FROM tblAppointment where [AppointmentID]= " & .Column(2) 'SQL to delete appointment from table DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True 'Turn warning off, run SQL, turn them back on again
myDisplayInfoMessage "Appointment Deleted OK" 'If the user decides to delete the customer then record is deleted and a message is shown to prove that Calendar3.SetFocus 'Sets the focus away to allow the rooms to be disabled lstRoom1.Enabled = False lstRoom2.Enabled = False lstRoom3.Enabled = False lstRoom4.Enabled = False 'Disables the rooms again
I have this subform in a form, i want the field that has a hyperlink (which is called Link) to display a check box once the file path has been pressed, so when each path (Link) is pressed i would like the form to display a check box that would tell the person if that pathfile had been pressed. I would like this to show for each of the path files.