Hale, Jim
Jim.Hale at FleetPride.com
Thu Sep 2 10:11:27 CDT 2004
Maintaining the integrity of data Linked to Excel spreadsheets is often
problematic, since the Excel "databases" are subject to manipulation by the
user (ie. blank cells, changing column headings, inserting rows, text
instead of numbers, etc. One way I reduce these problems is by having a
hidden sheet that is linked to the data input cells/sheets. This sheet can
have a "validation" field (column) with an excel formula that tests for
conditions such as all fields being filled, no text where numbers should be,
etc. If the "record" fails the test the formula result can be whatever code
you wish. Since you can create your own specialized Excel formula these
validation routines can be quite elaborate. When you are reading these Excel
"records" into the Access database you can test for these codes and handle
the record appropriately. Just a thought.
Jim Hale
-----Original Message-----
From: Hollis,Virginia [mailto:HollisVJ at pgdp.usec.com]
Sent: Thursday, September 02, 2004 8:28 AM
To: accessd at databaseadvisors.com
Subject: [AccessD] Required Field in Function
I removed the Cancel = True, added "Else" after the MsgBox, and moved the
End If to the bottom of the code. But I still receive the RunTime Error 424
Object Required on the If IsNull ... code. Am I missing something else? What
would stop the code from running and what is causing the error?
If IsNull(xlsBPS.AssetID) Then
MsgBox "Asset ID must be completed before downloading"
Else
.......
End If
End If
Virginia
________________________________________________________
Virginia
Your test may well be ok but all you're doinmg is setting Cancel=True; you
still carry on and execute the queries. The query execution needs to be on
an Else so that it does not run if the IsNull test is True. Setting
Cancel=True does not stop subsequent code.
--
Andy Lacey
http://www.minstersystems.co.uk <http://www.minstersystems.co.uk>
--------- Original Message --------
From: Access Developers discussion and problem solving
<accessd at databaseadvisors.com
<http://databaseadvisors.com/mailman/listinfo/accessd> >
To: accessD at databaseadvisors.com
<http://databaseadvisors.com/mailman/listinfo/accessd> <accessD at
databaseadvisors.com <http://databaseadvisors.com/mailman/listinfo/accessd>
>
Subject: [AccessD] Required Field in Function
Date: 02/09/04 12:45
I have a function (code below) that is used to append data from a linked
Excel file (xlsBPS). The Excel file is linked to the database as a table.
There is a column in the Excel file named AssetID - this is a required
field in the database. Yesterday when the user ran the append code the
AssetID was blank in one of the records in the xlsBPS file. This caused all
the records to move up one. For example:
Record 1: AssetID =
Description: This one
Record 2: AssetID = ABC
Description: My Name
The results after the append code ran were:
Record 1: AssetID = ABC
Description: This one
What can I add to the function to check for null fields to ensure the
AssetID is completed, if not, the code does not run? I tried adding a check
(where I added the ***** in the code, but I receive the error, RunTime 424,
Object Required.
Virginia
____________________________________________________________________
Function AppendBPS()
'Appends new data from xlsBPS to tblFailure, tblSystemMain, and
tblFailureTimeSelected.
Beep
Title = "Append new BPS data from Excel"
' Work Order table import.
Msg = "Your are about to modify data in this database."
Msg = Msg & " Do you want to continue?"
DgDef = vbQuestion + vbYesNo + vbDefaultButton1 ' Describe dialog
box.
Response = MsgBox(Msg, DgDef, Title) ' Get user response.
If Response = vbYes Then ' Evaluate response
******** If IsNull(xlsBPS.AssetID) Then
*******************************
******* MsgBox "Asset ID must be completed before
downloading"
******** Cancel = True
******* End If
DoCmd.SetWarnings False
DoCmd.Echo False, "Appending Data"
DoCmd.Hourglass True
'Append data to tables
DoCmd.OpenQuery "qry_AppendBPS_tblSystemMain", acNormal,
acEdit
'Open append query for tblSystemMain
DoCmd.OpenQuery "qry_AppendBPS_tblFailures", acNormal,
acEdit 'Open append query for tblFailures
DoCmd.OpenQuery
"qry_AppendBPS_tblFailureTimeSelected",acNormal, acEdit 'Open
append query for tblFailureTimeSelected
DoCmd.Echo False, "Appending new data"
DoCmd.Echo True
DoCmd.Hourglass False
Beep
MsgBox "All done!"
DoCmd.SetWarnings True
DoCmd.OpenForm "frmSystemFailure", acNormal,
"qryStatusPending", , acFormEdit, acWindowNormal
Else
' You chose No or pressed Enter.
End If
End Function
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
<http://databaseadvisors.com/mailman/listinfo/accessd>
http://databaseadvisors.com/mailman/listinfo/accessd
<http://databaseadvisors.com/mailman/listinfo/accessd>
Website: http://www.databaseadvisors.com <http://www.databaseadvisors.com>
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com