[AccessD] callback Constant acLBGetFormat

MartyConnelly martyconnelly at shaw.ca
Tue Jul 22 23:45:07 CDT 2003


David McAfee wrote:

>Yes, Charlotte sent me some sample code which helped out a bunch!
>
>Does anyone know how to use the intrinsic Constant "acLBGetFormat"?
>
>I figure you simply do a select case on the column, but how do you return
>the value?
>
>    Case acLBGetFormat 'call 7
>      'return the formatting info for the row/column
>      Select Case lngCol
>        Case 4, 5 'I want there to be shown as currency
>            'varretval= CCur(varretval) '?
>      End Select 'Case lngCol
>
>
>Help sucks. Its tells you what the constants are, but not how to use them :(
>
>
>-----Original Message-----
>From: Jim Pawson
>
>David,
>
>These list filling functions are pretty trivial once you've got one working.
>So don't panic, just chill!
>
>The acLBInitialize gets called when your form opens (and also each time you
>explicitly requery the list).
>
>So that's your one and only opportunity to grab and retain the data that
>goes in your listbox.
>Choose your favourite method.
>
>You could have a module-scope recordset.
>You could have a static ADO disconnected recordset.
>You could use the good old-fashioned dynamic array.
>Or a collection.
>Etc...
>
>In your case, you just enter code in the acLBInitialize case that:
>- Opens your recordset from your other db
>- Stores the contents so you can easily get at them whenever you need to
>during the lifetime of the listbox.
>You already know the column count, so I'd guess the easiest thing would be
>to declare a static dynamic array.
>static savarListEntries() as variant
>In the acLBInitialize case, open the recordset and movelast to be sure you
>have a rowcount.
>Redim your array accordingly.
>Populate your array from your recordset.
>(Again, using your favourite technique.  Don't forget there are methods of
>some recordsets that return the data in an array in one hit.)
>
>In other cases of the 'code' argument to your callback function, you'll need
>to supply:
>- the number of rows in your list -
>  which you can get as Ubound( savarListEntries) - LBound( savarListEntries)
>+ 1
>- the number of columns in your list -
>  which is 13 (BIG LIST!!)
>- the actual entry for a specific row,column in your list
>  which you do by returning the appropriate cell from your array.
>
>There are other codes you need to handle too,but they are all fairly trivial
>and covered elsewhere.
>
>The *examples* in Help are pretty good, as are the samples in all the
>standard references.
>
>You CAN use a Stored Proc to drive a listbox but, if your data is in some
>weird temporary .mdb you may well be better persisting with your list
>filling.
>I don't think it's relevant here, but you can even use a Stored Proc that
>needs a parameter from another control on your form.
>The obvious way is to set the RowSource to an Exec statement where you
>dynamically change the statement to include its argument.
>But there's also a backdoor where you use the Stored Proc's parameter name
>as the name of the control supplying the parameter.
>(That makes sense when you know what it means.  I'm a bit worried about it
>otherwise!!!)
>
>jim
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>  
>




More information about the AccessD mailing list