Solved

Converting listbox hours and listbox minutes to date/time format

Posted on 2006-11-22
15
259 Views
Last Modified: 2008-02-01
I'm designing a form on which there will be elapsed time for an activity.  I want to have two unbound list box controls, one for hours and another for minutes.  In this particular application minutes will be reported only in 15 minute intervals.  The hour list box will have 1, 2, 3, 4.  The minute list box will have 00, 15, 30, 45.  I'd like to have a third not visible control that is bound to a field in the table with regular date/time format.  The conversion from the list boxes to the bound control will take place in the list boxes AfterUpdate events.  What formula do I use for the conversion?
0
Comment
Question by:WFBweb
  • 4
  • 4
  • 3
  • +3
15 Comments
 
LVL 61

Accepted Solution

by:
mbizup earned 100 total points
ID: 17996225
Does this do the trick?

txtInvisibleControl = CDate (ListboxHrs & ":" & ListBoxMins)
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17996246
there is also timeserial that u can use

timeserial(lstHours, lstMinutes, 0)

returns the time
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17996259
"Miriam, why is that a administrative comment then"
he asks cheekily :)
0
 
LVL 61

Expert Comment

by:mbizup
ID: 17996312
Rocki: I don't know what you're talking about. ;-)
0
 
LVL 39

Expert Comment

by:stevbe
ID: 17996361
I think you need to determine which order the controls need to be , or will be filled out in so you can update the invisible textbox value in the afterupdate event of the lstHours and/ or lstMinutes. Maybe do it for both so you can be sure to catch it no matter which order they enter the data in.

Private Sub lstHours_AfterUpdate()
Dim dtmElapsed As Date

    'set date variable to 0 (12/31/1899 12:00 AM)
    dtmElapsed = 0
    DateAdd("h", Me.lstHours.Value, dtmElapsed)  
    DateAdd("n", Me.lstMinute.Value, dtmElapsed)  
    Me.txtEventEnd.Value = dtmEnd
End Sub

Private Sub lstMinutes_AfterUpdate()
Dim dtmElapsed As Date

    'set date variable to 0 (12/31/1899 12:00 AM)
    dtmElapsed = 0
    DateAdd("h", Me.lstHours.Value, dtmElapsed)  
    DateAdd("n", Me.lstMinute.Value, dtmElapsed)  
    Me.txtEventEnd.Value = dtmEnd
End Sub
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17996421
I swear, it showed up as admin comment.
I must be seeing things, surely u would never abuse your power :-D
0
 
LVL 65

Expert Comment

by:Jim Horn
ID: 17996505
(Off Topic)

Rock:  If Miriam's only badger-like problem here is inadvertently posting comments as Admin Comments, then she's doing pretty well. :)
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 

Author Comment

by:WFBweb
ID: 17996577
mbizup: Works fine...thanks! I changed the hours list box to 0,1,2,3.  I made the default 0 and the default of the minutes list box 00.  That way no matter what order they enter data in or if they skip one of the fileds becaue the default is ok, it works.
0
 
LVL 61

Expert Comment

by:mbizup
ID: 17996607
Glad to help :-)
0
 
LVL 44

Expert Comment

by:GRayL
ID: 17996631
For the sake of completeness, tbxInvisible control source:

=CDate(CStr(Me!lbxHours & ":" & Me!lbxMinutes) or

=TimeSerial(Me!lbxHours,Me!lbxMinutes,0)
0
 
LVL 44

Expert Comment

by:GRayL
ID: 17996664
WFBweb,  I'm not looking for anything, but didn't you have to prefix the listbox references with Me! or Me. ?
0
 

Author Comment

by:WFBweb
ID: 17996771
I don't know if I had to, but I did it 'automatically' the first time I tried it (and with brackets around the control name).
0
 
LVL 61

Expert Comment

by:mbizup
ID: 17996782
Ray,
The Me. prefix is needed for intellisense, and is better programming style, but is not needed to get the selected value.
0
 
LVL 44

Expert Comment

by:GRayL
ID: 17997070
So I found out.  I still think it behooves the 'Experts' to consistently display the 'better programming style'.  I've been playing with Access for over 15 years now and just the other day I 'discovered' you can create a form with no controls, bind it to a table, and determine the value of every field in the table from code - as well as manipulate the table.  While that may have been obvious to you, you could say it took my breath away.  All the while I had thought you needed controls.  And another one (strongly held belief) bites the dust - oh well!
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17997334
Howdo Jim
just teasing of course :)
Anyways what u doing here, I thought u were taking a well deserved break
0

Featured Post

Get up to 2TB FREE CLOUD per backup license!

An exclusive Black Friday offer just for Expert Exchange audience! Buy any of our top-rated backup solutions & get up to 2TB free cloud per system! Perform local & cloud backup in the same step, and restore instantly—anytime, anywhere. Grab this deal now before it disappears!

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now