How can I do the inverse operation, ie.assign the value of a property whose name I have in a string MyPropertyName? I mean other than a brute-force approach with a huge Case.
Visual Studio IDE environment and I have been working with Access VBA for almost a year now.
I am very used to generating my form controls in runtime and being able to create some cool user interface interactions by being able to say btnExample.OnClick += MyDynamicClickFunction
In a form (bounded to this table) I have, of course, 2 controls bounded to this fields:
txtD1 and txtD2
If the user change the value in txtD1 (using the Date picker) I like to change the DefaultValue for txtD1 to the new date and the DefaultValue for txtD2 to the new date + 1 day. Something like this:
Code: Private Sub txtD1_AfterUpdate() Me.txtD1.DefaultValue = Me.txtD1 Me.txtD2.DefaultValue = Me.txtD1 + 1 day End Sub
I tried whatever crossed my mind... with the same "result" : #Name?
My Regional settings:
Short date format: dd.MM.yyyy Date separator: Dot Simple: 05.12.2013
I added a new field to one of my tables and query, but when I try to add a control for that field into my form it is not recognising it and the field isn't appearing in the sources for the form, even though the table is sourced to the form? Or am I going to have to do the usual and redo the entire form because I made a minor adjustment?
I have been pulling my hair out (OK, I would be if I had enough to do so) over trying to assign a value to a control on a form. Basically, when a change is made to the form, I'm using the AfterUpdate event to trigger the code. The code in the event is
Me.txtWho = Environ("UserName")
Simple, straightforward or so I thought. Problem is, it gives me an error stating I cant' assign a value to that object. txtWho is bound to a field in the query underlying the form and the control is enabled and not locked. Can anyone shed some light on this for me please????
I am working with textbox [DispCD] (a date field) on form [Contract]. There is a dropdown on combobox [Searchbox] for selecting the desired record. I am writing VBA in the [Searchbox] OnChange event. The control source for [DispCD] would normally be "=Searchbox.column(11)". If "column(11)" has a date, I want [DispCD] to show that date and then be locked. If "column(11)" does NOT have a date, I want [DispCD] to allow entry of a date with the date picker showing. I've tried to assign the control source to [DispCD] with this:
CSVal = Format(Forms![Contract]!SearchBox.Column(11), "ddd m/d/yyyy") (this works) If CSVal = "" Then _ Forms![Contract]!DispCD.countrolsource = "=SearchBox.Column(11)"
I get "Object doesn't support this property or method" error.
The code I am modifying looping through Me.controls collection to identify appropriate control types. Is there a way to influence the order (sequence) of that traversing? Or in different words, is there a way to assign by design certain item number to a given control?
I have a linked table in ms access and it has a column as details. in ms access when i click on this button i will go to another form. i want to assign a picture (for opening a form) to this column but i don't know how i have to do this. my form opens as a datasheet view.
What I want to be able to do is to assign a back colour to a control from VBA. There are many colours and what I thought would be an easy process was to choose a suitable colour to be assigned using the colour picker for a control, note the hex number then in my vba code would be
if... then me.mycontrol.backcolor=&HF0AD34
This compiles OK, but produces a completely different colour - I'm expecting an orange colour but getting blue and in another example a pale blue is coming out a brown.
Research indicates adding an ampersand to the end changes the value from integer to long but if I type
if... then me.mycontrol.backcolor=&HF0AD34&
The second ampersand disappears. In the immediate window
All produce the same value of 15772980, which if I copy back to the control backcolour property produces the blue colour and not the required orange - which if i debug.print me.mycontrol.backcolor give me 3452400 - the correct number for orange.
The problem seems to be converting the hex number to a long.
Also how to modify the properties window to show the decimal value rather than the hex value, but can't see anywhere to do this.
I have a main form with about six text boxs, these are too small to display the complete data so I created a form with a larger text box. When I dbbl-click in any of the various text boxs on the main form it would open the new popup form displaying the data. I need to be able to access the control source property of the popup form's textbox to change the control source to match the selected text box on the main form. This would allow me to use only one popup form instead of six.
The code I use to access the actual popup form itself is:
Forms![Notes].Form.Caption = " Notes "
Now I need to know what the code is to access the forms textbox control source data.
Ok, here is my question. I am just a little rusty since it has been a while since I have been in Access.
So I have a option group: option 1, option 2, option 3
If option 1 is selected I want textbox 1 visible, but textbox 2 and 3 not visible.
If option 2 is selected I want textbox 2 visible, but textbox 1 and 3 not visible.
If option 3 is selected I want textbox 3 visible, but textbox 1 and 2 not visible.
When the form first opens, all textboxes are not visible. What is the correct way to do this: code, macro, etc? and where should I place it? Should it be in the Afterupdate property of the option group?
My question is in Access 2010 I am currently in the property sheet at a combo list i just added to a form to be more precise with the data the user will look for. My question is I know I have to be in Control source in order for the combo box to select the data that I entered from the table. When i click the arrow the drop list is empty and then when I click the elipses (three dots) it takes me into expression builder, so i am confused on what I should do to select the field I want the combo box to focus on.
I have a text box in a report, with it's control source property set to =[BegDt]. Upon loading the report a message box pops up and asks the user for the value of [begDt]. This occurs 3 more times for 3 other parameters.
Now I want to change the design of the report so I decided to put these 4 parameters on a form so the user can fill in the 4 values all at once rather than responding to 4 message boxes that pop up when you run the report.
The problem is now the control source properties in all the different text boxes need to be changed to [forms]![frmABC]![txtBegDt] etc.etc. There are over 100 text boxes in this report that make reference to the 4 different parameters. Is there a replace command I can use to change all the occurrences in the text boxes or perhaps a simpler way would be to pass the values to the report through code.
I tried placing this in the report header's format event and it doesn't seem to have any effect.
Code:Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)begytd = [Forms]![frmABC]![txtStDt]endytd = [Forms]![frmABC]![txtEndDt]curmo = [Forms]![frmABC]![cboMo]curyr = [Forms]![frmABC]![cboYr]End Sub
I should mention that the report uses a table (tblRecap) as it's record source. I tried using a query that refers back to the form for the parameter values but that means I have to use the query as the reports record source and that creates a problem because the report needs fields from the table to perform calculations.
Is it possible to use a formula in the Caption property of a page in a tab control (i.e. to make it dynamic)
I have a number of tabs each with their own subform (with each subform driven by its own unique query)
I'd like the tab name to include the number of records returned by that query (so as records are added, the tab name is automatically updated with the new number)
So something along the lines of :
Page 1 (" & DCount("[ID]","[qryQuery1]") & ")"
Such that the page name appears as :
Page 1 (7)
I know I can code this programmatically but then that code has to be triggered by some event and I need the counts to be as real-time as feasibly possible rather than requiring the user to click on a control to trigger it. I was hoping by using a formula directly in the Caption property of the page, it would be dynamically updated every time a new record was added without the need to trigger an event first.
I am trying to use Access 2007 popup calendar to populate a combo box with a selected date. When I select the date on the calendar the above error appears.
Code:
Private Sub Calendar9_Click() 'Set Date to the selected date and hide the clalendar. MAssBDate.Value = Calendar9.Value MAssBDate.SetFocus Calendar9.Visible = False End Sub
I want to create a table via SQL. This table should contain records that begin after a specified date.
Something is wrong with this syntax.
Code:
Sub TEST() Dim t As Date t = 1 / 3 / 2014 DoCmd.RunSQL "SELECT TRP.Customer, TRP.Material, TRP.Product_Class, TRP.TRP as Price, TRP.Valid_from, " & _ " TRP.Valid_to INTO [New_Prices] " & _ " FROM TRP " & _ " WHERE (((TRP.Customer)= 1223) AND ((TRP.Valid_from)>#t#))" End Sub
Not sure whats going on here, nothing on the table that stops this from working. I just get Run-time error "2448 You can't assign a value to this object" When the code runs.
Code: Private Sub Form_Open(Cancel As Integer) Dim rst As DAO.Recordset MySQL = " Select max(ID) from TblUserQry" Set rst = CurrentDb.OpenRecordset(MySQL) Myid = rst.Fields(0) + Int(Rnd(1) * 10) Me.txtMyID.Value = Myid
In the default property of a subform control I want to use a control of the main form without using names of forms, but using me and parent.
I used in default property of cboVATDetail: =Me.Parent!cboVAT, but it is not accepted. My aim is to use cboVAT of parent as default in cboVATDetail of child.
I have a form called departments . one that form i have 5 buttons. I want this form only to open when some logs onto the database . The buttons represent each department ...
1. sales 2 purchasing etc etc
Is it possible to assign a password to those buttons so each department has security to their own form ...
I have a table (tblPrinterSelection) with three fields: Autonumber, DocType, PrinterSel
There are three types of values for "DocType"; "Document", "LargeLabel", "SmallLabel"
I want to assign a "PrinterSel" to each type of "Doctype", which basically means that the user selects the type of document and then the printer in a form that has the code below and then I need the code to automatically update the table.
Code: Dim PrintSel As String Dim DocType As String 'Assign a value to the printer selected variable PrintSel = Me.lblPrinterSelected.Caption If IsNull(Me.frmDocType) Then MsgBox "No document type selected."
[code]....
What i am looking for is code that would pick the value for "DocType" and "PrintSel" assigned here and add them to the table so that I can use that info later.
I am only looking to have three rows in that table so if the "DocType" does not exist then a new row is created but if it does, only the value of "PrintSel" is updated.
I should end up with something like this:
1 Document Epson 2 LargeLabel HP 3 SmallLabel Canon
I have built an access application that contains a set of buttons along the top of every form that serve as navigation.* These buttons each perform the same function on every form they are on. (menu opens the main menu, etc) I have database macros to assign each button the same function but I still have to go through each form and manually assign them. I was wondering if it was possible to define a public function that on db open will look for all buttons with a certain name and assign them the macro. (so all buttons called cmdmainmenu will have the OpenMainMenu macro assigned and so on).Before you go there, I have already tried the navigation form and set all forms as subforms.
I have a query that formats data into a list of personnel who are coming due for refresher training. The query is formatted to provide me all the details that I need to create an outlook task, and assign it to the person. I tried creating a button on my form to create a record set of that query, and then create / assign a task to each person based on the values from the recordset.
Code: Private Sub SendTasks_Button_Click() 'Create the recordset and set it to the appropriate query Dim rst As DAO.Database Dim rstData As DAO.Recordset Set rst = CurrentDb Set rstData = rst.OpenRecordset("SendTasks_qry")
[Code] .....
Basically, the compiler stops at "Dim myOlApp As New Outlook.Application" with the error: "Compile error: User-defined type not defined"