93 lines
4.6 KiB
Markdown
93 lines
4.6 KiB
Markdown
# DS Spot Weld
|
|
Analysis generated on: 4/1/2025 4:10:05 PM
|
|
---
|
|
## Record Source
|
|
- [[Queries/DataSheetQ1]]
|
|
## Controls
|
|
| Control Name | Reference |
|
|
|--------------|-----------|
|
|
| PartNumber | PartNumber (from [[Queries/DataSheetQ1]]) |
|
|
| Operation | Operation (from [[Queries/DataSheetQ1]]) |
|
|
| Elem1A | Elem1A (from [[Queries/DataSheetQ1]]) |
|
|
| Elem2A | Elem2A (from [[Queries/DataSheetQ1]]) |
|
|
| Elem3A | Elem3A (from [[Queries/DataSheetQ1]]) |
|
|
| Paperwork | Paperwork (from [[Queries/DataSheetQ1]]) |
|
|
| TotalSelectTime | TotalSelectTime (from [[Queries/DataSheetQ1]]) |
|
|
| StandardMinutes/part | StandardMinutes/part (from [[Queries/DataSheetQ1]]) |
|
|
| pf&d | pf&d (from [[Queries/DataSheetQ1]]) |
|
|
| StandardHours/part | StandardHours/part (from [[Queries/DataSheetQ1]]) |
|
|
| StandardParts | StandardParts (from [[Queries/DataSheetQ1]]) |
|
|
| Elem4A | Elem4A (from [[Queries/DataSheetQ1]]) |
|
|
| Elem5A | Elem5A (from [[Queries/DataSheetQ1]]) |
|
|
| Field97 | Elem1V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field98 | Elem1V2 (from [[Queries/DataSheetQ1]]) |
|
|
| Field100 | Elem2V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field105 | Elem3V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field115 | Elem4V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field120 | Elem5V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field127 | Elem6V2 (from [[Queries/DataSheetQ1]]) |
|
|
| Field139 | Elem6V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field140 | Elem6A (from [[Queries/DataSheetQ1]]) |
|
|
| Field144 | Elem7A (from [[Queries/DataSheetQ1]]) |
|
|
| Field158 | Elem8V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field161 | Elem8V2 (from [[Queries/DataSheetQ1]]) |
|
|
| Field164 | Elem8V3 (from [[Queries/DataSheetQ1]]) |
|
|
| Field167 | Elem9V1 (from [[Queries/DataSheetQ1]]) |
|
|
| Field170 | Elem9V2 (from [[Queries/DataSheetQ1]]) |
|
|
| Field173 | Elem9V3 (from [[Queries/DataSheetQ1]]) |
|
|
| Field179 | Elem8A (from [[Queries/DataSheetQ1]]) |
|
|
| Field180 | Elem8A (from [[Queries/DataSheetQ1]]) |
|
|
| Field183 | Elem7V2 (from [[Queries/DataSheetQ1]]) |
|
|
| Field185 | Elem7V1 (from [[Queries/DataSheetQ1]]) |
|
|
## VBA Code
|
|
```vba
|
|
Option Compare Database 'Use database order for string comparisons
|
|
|
|
Private Sub Form_Load()
|
|
On Error GoTo die
|
|
If IsNull(Me![PartNumber]) Then
|
|
End
|
|
End If
|
|
Exit Sub
|
|
HelpMe:
|
|
DoCmd.SelectObject A_FORM, "DS CNC"
|
|
DoCmd.Close
|
|
Exit Sub
|
|
die:
|
|
Resume HelpMe
|
|
|
|
End Sub
|
|
|
|
```
|
|
## What it does
|
|
**VBA Code Description**
|
|
=========================
|
|
|
|
### Purpose
|
|
This VBA code is designed to handle the loading of a specific form in an Access database. It checks for the presence of a mandatory field (`PartNumber`) and provides error handling if it's missing.
|
|
|
|
### Detailed Explanation
|
|
#### 1. Option Compare Database
|
|
The first line, `Option Compare Database`, specifies that string comparisons should be performed according to the database collation order. This is an important consideration when working with data in Access databases.
|
|
|
|
#### 2. Form_Load Subroutine
|
|
The `Form_Load` subroutine is a standard event handler in VBA that gets triggered when a form loads.
|
|
|
|
#### 3. Error Handling and Mandatory Field Check
|
|
Inside the `Form_Load` subroutine, there are two main sections:
|
|
|
|
* **Error Handling:** The `On Error GoTo die` statement specifies that if an error occurs during the execution of the code within this subroutine, it should be caught and handled using the `die:` label. This prevents the program from crashing.
|
|
* **Mandatory Field Check:** The following lines check if the value in the `PartNumber` field (represented by `Me![PartNumber]`) is null or empty (`IsNull(Me![PartNumber])`). If it is, the subroutine executes the code within the `End If` block, effectively ending the subroutine and preventing any further execution.
|
|
|
|
#### 4. Selecting and Closing a Form
|
|
The following lines of code are used to select and close another form in the database:
|
|
|
|
* `DoCmd.SelectObject A_FORM, "DS CNC"`: This line selects an object (in this case, a form named "DS CNC") using the `DoCmd` object.
|
|
* `DoCmd.Close`: After selecting the other form, this line closes the selected form.
|
|
|
|
#### 5. Error Handling Catch
|
|
The final label (`die:`) serves as a catch-all for any unhandled errors that may occur during the execution of the code within the `Form_Load` subroutine. When an error is encountered and it's not caught by the previous `On Error GoTo die` statement, the program jumps to this label, allowing it to continue running while still providing some level of error management.
|
|
|
|
**In Summary**
|
|
This VBA code ensures that a specific form loads properly in an Access database by checking for the presence of a mandatory field (`PartNumber`). If the field is missing, it triggers an error and tries to load another form in an attempt to mitigate any issues.
|