I needed to check that the values entered into a textbox called StoreID in an Access Database where numerical and composed of 3 digits. Here is one solution: on the AfterUpdate event of the textbox, put this code:
Private Sub StoreID_AfterUpdate()
Dim intLen, intChar, i As Integer
Dim strTextBox As String
intLen = Len(StoreID) 'Len is a function that counts the amount of characters in a string
If intLen <> 3 Then ' if the length is not 3, give message box
MsgBox "The field 'Store ID' requires 3 digits from 001 to 900"
Else ' if length is 3 then assign variables and start loop for checking numerical values
intLen = Len(Me!StoreID)
'Me! always refers to the active form
strTextBox = Me!StoreID
For i = 1 To 3 'For 1 to 3
intChar = Mid(strTextBox, i, 1) 'Mid function takes middle values (expression,start value, length of selection)
If IsNumeric(intChar) = False Then
MsgBox " ' " & intChar & " ' is not a number, please enter numeric values only from 001 to 900"
Exit Sub
Else
End If
Next
End If
End Sub
Wednesday, November 02, 2005
Call an Access Database Procedure from another Access Database
Here is an Access VBA example of how to call an external Access Database VBA procedure from within a different access database.
Sub ForeignProcedure()
Dim appAccess As Access.Application
' Create instance of Access Application object.
Set appAccess = CreateObject("Access.Application")
' Open MyDatabaseName.mdb database in Microsoft Access window.
appAccess.OpenCurrentDatabase “C:\MyDatabaseName", False
'False so as not to open in exclusive mode
' Run Sub procedure.
appAccess.Run "ForeignProcedureName"
appAccess.Quit
Set appAccess = Nothing
MsgBox "Done!"
End Sub
Sub ForeignProcedure()
Dim appAccess As Access.Application
' Create instance of Access Application object.
Set appAccess = CreateObject("Access.Application")
' Open MyDatabaseName.mdb database in Microsoft Access window.
appAccess.OpenCurrentDatabase “C:\MyDatabaseName", False
'False so as not to open in exclusive mode
' Run Sub procedure.
appAccess.Run "ForeignProcedureName"
appAccess.Quit
Set appAccess = Nothing
MsgBox "Done!"
End Sub
Call an Access Database VBA Procedure from Excel
In order to call an Access vba procedure from an Excel spreadsheet, the first thing you need in Excel is a Reference for the Microsoft Access Object Library, as seen in the picture below ...
To see this screen, from within Excel, go to VBA (press ALT + F11), then select Tools from the top menu and then References
Public Sub ProcedureInAccess()
‘this VBA code is run in Excel
Dim acApp As Object
Dim db As Object
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase ("C:\MyDatabaseName.mdb")
Set db = acApp
acApp.Run "NameOfProcedureInAccess"
acApp.Quit
Set acApp = Nothing
End Sub
To see this screen, from within Excel, go to VBA (press ALT + F11), then select Tools from the top menu and then References
Public Sub ProcedureInAccess()
‘this VBA code is run in Excel
Dim acApp As Object
Dim db As Object
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase ("C:\MyDatabaseName.mdb")
Set db = acApp
acApp.Run "NameOfProcedureInAccess"
acApp.Quit
Set acApp = Nothing
End Sub
Delete Rows from Access Database Table Using VBA and SQL
Using the DoCmd property you can delete all rows in an Access Database table using Access VBA and SQL
Sub DeleteRows()
'Deletes all rows from tblName in an Access Database
DoCmd.RunSQL "DELETE tblName.* FROM tblName;"
End Sub
Sub DeleteRows()
'Deletes all rows from tblName in an Access Database
DoCmd.RunSQL "DELETE tblName.* FROM tblName;"
End Sub
Subscribe to:
Posts (Atom)