[AccessD] VBA Unbound data entry / update form

jwcolby jwcolby at colbyconsulting.com
Tue May 27 22:36:29 CDT 2008


Rocky,

While that is technically unbound, you still have a 
recordset object open.  IF you are setting a lock then you 
are right back to the issues I am trying to get around.  I 
would call that "quasi-unbound".

Truly unbound opens a recordset, transfers the values to 
controls, closes the recordset, modifies the data, opens the 
recordset, performs all of the checks and balances needed to 
prevent data corruption, writes changes / new records back 
to the data set, closes the dataset.

John W. Colby
www.ColbyConsulting.com


Rocky Smolin at Beach Access Software wrote:
> Jennifer:
> 
> You use DAO to navigate the recordset  =MovePrevious,Next,First,Last,
> FindFirst,Next, etc - and when you fetch a record call a sub that transfer
> the values from the fields to the unbound text boxes.  You need a save
> button on the form for the user to save the edited (or added) record because
> it doesn't happen automatically just by moving off the record. Save calls a
> sub that copies the values from the unbound text boxes to the DAO record.
> 
> 
> 
> 
> Rocky Smolin
> Beach Access Software
> 858-259-4334
> www.e-z-mrp.com
> www.bchacc.com
>  
>  
> 
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jennifer Gross
> Sent: Tuesday, May 27, 2008 5:12 PM
> To: 'Access Developers discussion and problem solving'
> Subject: Re: [AccessD] VBA Unbound data entry / update form
> 
> I have no idea how to create an unbound form in Access.  I always use bound
> forms.  Though I would be interested to know how it's done.  Unless I've got
> it wrong, that seems to be the basic question here - For those of you who do
> it, how do you create an unbound form?  How do you populate the textboxes
> initially and then how do you save the information back to the tables?
> 
> It's beginning to sound like nobody really does it.
> 
> Jennifer
> 
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
> Sent: Tuesday, May 27, 2008 2:49 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] VBA Unbound data entry / update form
> 
>  > 1) If your situation gives you the choice between Access and SQL Server,
> then you can use SQL Server Express.  For your customer's benefit - it's
> free!
> 
> I know that, and you know that, but they have used an MDB BE for most of a
> decade.  SQL Server is the great unknown.
> 
>  > 2) How many concurrent users?  Too Many?
> 
> In the majority of cases, no.  There ARE specific places where too many
> users cause mysterious issues with an MDB. 
> Memos are written in "pages", as are indexes.  If you open a record and
> start to edit it, it "locks" an entire "page" of the index structure or the
> memo area, which locks not just your record but potentially many others.
> 
> This simply doesn't happen in SQL Server because SQL Server doesn't have
> this "page" system for storing memo fields etc.
> 
>  > 3) How many indexes on the tables?
> 
> Not the point, the point is that ALL indexes are stored in Index pages, and
> entire pages of indexs can be locked by a single edit.
> 
> Creating / using Indexes should be determined by need, not arcane locking
> issues within Jet.
> 
>  > 4) Are you starting up by setting a recordset to open and leaving it that
> way?
> 
> If you are talking about creating and holding locks on the BE, yes I am, but
> that isn't the issue either.
> 
> John W. Colby
> www.ColbyConsulting.com
> 
> 
> Dan Waters wrote:
>> John - I've been reading this with interest:
>>
>> 1) If your situation gives you the choice between Access and SQL 
>> Server, then you can use SQL Server Express.  For your customer's 
>> benefit - it's free!
>>
>> 2) How many concurrent users?  Too Many?
>>
>> 3) How many indexes on the tables?  I actually only use the primary 
>> key as an index on every table.  More indexes slows down writing
> performance.
>> 4) Are you starting up by setting a recordset to open and leaving it 
>> that way?  This greatly reduces 'churn' in the locking database.  When 
>> I set this up all my users reported a significant performance improvement.
> Code below:
>> '------------------------------------------------------------------------
>>     Dim stgConnect As String
>>     Dim dbs As DAO.Database
>>     Dim tdf As DAO.TableDef
>>         
>>     stgConnect = BEFullPath
>>     Set dbs = DBEngine(0)(0)
>>     Set tdf = dbs.TableDefs("tblConnect")
>>     If tdf.Connect <> ";Database=" & stgConnect Then
>>         tdf.Connect = ";Database=" & stgConnect
>>         tdf.RefreshLink
>>     End If
>>     dbs.Close
>>
>>     Set GrstConnect = DBEngine(0)(0).OpenRecordset("tblConnect",
>> dbOpenSnapshot)
>> '---------------------------------------------------------------------
>> ---
>>
>> Notes:  BEFullPath is a function to return the full path to the BE.
>>         tblConnect is a one row one field table in the BE.
>>         The table link is refreshed because the table link is in a
> library.
>>         GrstConnect is a globally defined DAO recordset.
>>         GrstConnect remains open until just before the database is closed.
>>
>> Good Luck!
>> Dan
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> 
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 8.0.100 / Virus Database: 269.24.1/1469 - Release Date: 27/5/2008
> 13:25
> 



More information about the AccessD mailing list