Toon posts:

VBA gebruiken in access....?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik ben bezig met een database in access, nu heb ik van een collega deze code gekrege
om een MAC adres te laten controleren;

Public Function pfCheckMacAddress(strMAC As String) As Boolean
On Error GoTo Err_pfCheckMacAddress
Dim strInput As String
Dim strResult As String
Dim blnResult As Boolean
blnResult = True
strInput = strMAC
'eerst checken op de lengte van het address
If Len(Trim(strInput)) <> 12 Then
MsgBox "De lengte van het MacAddress klopt niet"
blnResult = False
GoTo Exit_pfCheckMacAddress
End If
'nu gaan we kijken of het is samengesteld uit geldige karakters
For i = 1 To Len(Trim(strInput))
If Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 47 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 58 Or _
Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 64 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 71 Then
Else
blnResult = False
GoTo Exit_pfCheckMacAddress
End If
Next i
Exit_pfCheckMacAddress:
pfCheckMacAddress = blnResult
Exit Function
Err_pfCheckMacAddress:
MsgBox "Error: " & Err.Description, vbCritical + vbOKOnly, "Error: " & Err.Number
blnResult = False
Resume Exit_pfCheckMacAddress
End Function

nu is alleen nog het probleem.. ik heb geen flauw id hoe ik dat in access krijg zodat bij
het invoeren van informatie het MAC adres wordt gecheckt...

ik gebruik access 2000,

heb al op turorials gekeken maar daar vind je niet echt iets over dit probleem, meer over
het via VBA openen en gebruiken van de database....

Help optie van access werkt ook niet echt mee... heb hier en daar wel wat geprobeerd met Macro Expression Builder (als ik t goed heb) maar lukt niet...

b.v.d.

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 13-08 21:01
Je moet deze functie gewoon in de VBA-code (via ALT+F11) van het formulier douwen (of in een aparte module) en aanroepen na wijziging van het MAC-adresveld.

Vlinders moet je volgen, niet vangen...


  • Boss
  • Registratie: September 1999
  • Laatst online: 12:29

Boss

+1 Overgewaardeerd

Dit blijft toch wel altijd een mooie constructie:
code:
1
2
3
4
If Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 47 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 58 Or _
Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 64 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 71 Then
Else 
...

Nooit gehoord van IF NOT zeker :? :)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

De opmerkingen van F_J_K in "Acces / Gebruik VBA in access ??" heb je wel beantwoordt; maar belangrijker is het dat je zelf erg weinig geprobeerd lijkt te hebben :) Je gooit nog steeds een stuk code over de muur met een eenvoudige vraag :) Enige eigen inzet waarderen we in deze wel

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Boss schreef op maandag 13 juni 2005 @ 17:08:
Dit blijft toch wel altijd een mooie constructie:
code:
1
2
3
4
If Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 47 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 58 Or _
Asc(Mid$(Trim(UCase(strInput)), i, 1)) > 64 And Asc(Mid$(Trim(UCase(strInput)), i, 1)) < 71 Then
Else 
...

Nooit gehoord van IF NOT zeker :? :)
ghehe.. die gozer droomt ongeveer in Access dus hij zal t wel niet voor niets gedaan hebben ;)

@ spider..

ik heb een hele middag zitten uitproberen maar ik kwam dr niet verder mee.....

zal nu is kijke of t lukt :P

  • Pyrowired
  • Registratie: Februari 2004
  • Laatst online: 05-01-2025
Ga naar het formulier ontwerp en kijk bij de eigenschappen van het veld wat je wilt controleren.
Kies bij het tabje "Gebeurtenis" voor opbouwen van een gebeutenis d.m.v. "Opbouwfunctie voor programmacode"

je zet er
code:
1
PFCheckMac(Forms!<formuliernaam>!<veldnaam>.Value


en ergens onderaan in het formulier gooi je onderstaande functie neer (mooier is het om hem in een aparte module te gooien, dan is ie in de hele db te gebruiken en heb je iets minder overhead in je formulier.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Public Function PFCheckMac(MacAdres As String)

'convert all chars to uppercase and trim all spaces
Dim Adj_MacAdres As String

Adj_MacAdres = UCase(Trim(MacAdres))

'Check if there are 12 chars otherwise baill out

Dim Msg As String
Dim Titel As String
Dim style

Msg = "Een Macadres bestaat uit 12 tekens, je hebt er teveel/weinig ingevoerd!"
Titel = "Fout bij invoer"
style = vbCritical + vbOKOnly

If Len(Adj_MacAdres) <> 12 Then
    MsgBox Msg, style, Titel
    Exit Function
End If

'Let check if all input are Hex numbers
Dim I As Integer
I = 1
Do While I <= Len(Adj_MacAdres)
    If Mid(Adj_MacAdres, I, 1) = 0 Then
        I = I + 1
    ElseIf Val("&H" & Mid(Adj_MacAdres, I, 1)) <> 0 Then
        I = I + 1
    Else
        MsgBox "Teken nummer " & I & " is foutief!", style, Titel
        Exit Function
    End If
Loop
    


End Function


En zoals je ziet geen gekloot met goto en errormessages en een stuk overzichtelijker

Zolang de zon schijnt, blijf ik binnen.

Pagina: 1