101 lines
3.6 KiB
Markdown
101 lines
3.6 KiB
Markdown
# DS Salvagnini
|
|
Analysis generated on: 4/1/2025 4:11:39 PM
|
|
---
|
|
## Record Source
|
|
- [[Queries/DataSheetQ1]]
|
|
## Controls
|
|
| Control Name | Reference |
|
|
|--------------|-----------|
|
|
| PartNumber | PartNumber (from [[Queries/DataSheetQ1]]) |
|
|
| Operation | Operation (from [[Queries/DataSheetQ1]]) |
|
|
| Elem1A | Elem1A (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]]) |
|
|
## 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 Laser"
|
|
DoCmd.Close
|
|
Exit Sub
|
|
die:
|
|
Resume HelpMe
|
|
End Sub
|
|
|
|
```
|
|
## What it does
|
|
**VBA Code Description**
|
|
==========================
|
|
|
|
### Overview
|
|
|
|
This VBA code is a part of an Access application and is triggered when the `Form_Load` event occurs. It checks for specific conditions related to the form's settings and takes corrective actions.
|
|
|
|
### Key Sections
|
|
|
|
#### Option Compare Database
|
|
---------------------------
|
|
|
|
* This line sets the comparison order for string values in the database.
|
|
* The `Option Compare Database` statement tells Access to use its own internal string comparison rules, rather than the default culture-specific rules.
|
|
* This is done to ensure consistent and accurate comparisons of text data across different regions and cultures.
|
|
|
|
#### Sub Form_Load
|
|
------------------
|
|
|
|
* **Private Sub**: Indicates that this subroutine is private and can only be accessed within the same module.
|
|
* `Form_Load` event: This line specifies that the code is attached to the `Form Load` event, which is triggered when the form is initialized or opened.
|
|
* `On Error GoTo die`: Sets the error handling trap for any exceptions that occur during the execution of this subroutine. If an error occurs, the control jumps to the `die:` label.
|
|
|
|
#### Conditional Checks
|
|
----------------------
|
|
|
|
### Check for Null PartNumber
|
|
|
|
```vb
|
|
If IsNull(Me![PartNumber]) Then
|
|
End
|
|
End If
|
|
```
|
|
|
|
* This code checks if the form's `PartNumber` field is null.
|
|
* If it is null, the subroutine ends immediately using the `End` statement.
|
|
|
|
#### Resume HelpMe
|
|
|
|
```vb
|
|
Exit Sub
|
|
HelpMe:
|
|
DoCmd.SelectObject A_FORM, "DS Laser"
|
|
DoCmd.Close
|
|
Exit Sub
|
|
die:
|
|
Resume HelpMe
|
|
```
|
|
|
|
### Default Action: Close and Open DS Laser Form
|
|
|
|
* The `Resume HelpMe` instruction redirects the program flow to the `HelpMe:` label.
|
|
* Inside the `HelpMe:` block:
|
|
* `DoCmd.SelectObject A_FORM, "DS Laser"`: Opens a new instance of the specified form (`"DS Laser"`) in the current database.
|
|
* `DoCmd.Close`: Closes the currently open document (if any).
|
|
* The subroutine ends using `Exit Sub`.
|
|
|
|
### Error Handling: die:
|
|
|
|
* If an error occurs during the execution of this code, it is caught by the `die:` label.
|
|
* This instruction simply resumes the normal program flow from where the error occurred.
|
|
|
|
**In summary**, this VBA code checks for a null `PartNumber` field in the form's settings and takes corrective actions. If the `PartNumber` is null, it ends immediately. Otherwise, it closes any open document and opens a new instance of the "DS Laser" form. The code also includes error handling to ensure that the program continues running smoothly after encountering an exception.
|