Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Hardware-Inventar mit Access

Frage Microsoft Microsoft Office

Mitglied: Crustacean

Crustacean (Level 1) - Jetzt verbinden

08.07.2009, aktualisiert 14:40 Uhr, 7013 Aufrufe, 4 Kommentare

Ziel:
Kleine Datenbank für die Hardware-Inventarisierung, inkl. Namensgenerator

AlohA!
Ich möchte mir eine kleine Access-Datenbank stricken, in der ich meine Hardware inventarisiere.
Soweit so gut, da sie nur mit ein paar Datensätzen und wenigen Informationen starten soll.
Mein Problem ist, dass ich innerhalb der Datenbank gleichzeitig die Namen für die Geräte generieren möchte. Die Namensnorm ist schon festgelegt und auch schon in der Umsetzung. D.h. werden Geräte installiert, bekomme sie schon den Namen der Norm entsprechend.
Folgende Struktur ist bei uns gültig:

AA-BB-CC-DD-###
AA = Länderkürzel nach ISO
BB = Kürzel des Standortes
CC = Kürzel der Abteilung
DD = Kürzel des Geräte-Typs
### = dreistellige Zahl
Beispiel
DE-DD-SA-DT-001

Die Kürzel sind in Tabellen hinterlegt. Die Zahlen sollen hochgezählt werden. Jetzt möchte ich so etwas wie einen Namensgenerator erstellen. Über eine Maske wähle ich die Kürzel aus und Access soll mir die nächste freie Nummer anhängen. Nächste freie Nummer heißt in diesem Fall, wenn das Gerät mit dem Namen DE-DD-SA-DT-002 ersetzt wird und der nächste Desktop im Vertrieb des Standortes installiert wird, möchte ich die 002 bekommen und nicht die nächste freie Nummer nach dem Hochzählen. Access soll also nicht einfach hochzählen, sondern auch Lücken erkennen und diese erst auffüllen, bevor eine neue Kennung erstellt wird.

Ich hoffe ich habe mich klar genug ausgedrückt, damit ihr mir helfen könnt.

Danke für eure Hilfe!
Grüße,
Crustacean
Mitglied: Bolle97
08.07.2009 um 16:29 Uhr
Hallo,

da wirst Du eine kleine Funktion schreiben müssen.
Du suchst dir z.B. mit "Dlookup" die Werte von "Min" und "Max" des Suffix ### und durchläufst eine Schleife, beginnend von Min + 1 bis Max.
In der Schleife dann jedesmal schauen ob der Wert schon vorhanden ist, wenn ja, nehmen und beenden, wenn nein, Wert + 1 und weitersuchen.

Gruß René
Bitte warten ..
Mitglied: Crustacean
09.07.2009 um 08:43 Uhr
AlohA René!
Das übersteigt jetzt meinen Horizont. Was du mir sagen willst verstehe ich. Lediglich die Umsetzung übersteigt meine derzeitigen Fähigkeiten. Könntest du, oder jemand anderes das ganze einmal in Code umsetzen.

Danke!
Crustacean
Bitte warten ..
Mitglied: Bolle97
09.07.2009 um 14:53 Uhr
Hallo,

o.k. hier eine kleine Funktion zu dem Thema.
Folgende Annahmen:
1. Tabelle "INVENTAR" mit einer Spalte "Inventarnummer"
in diese Tabelle existieren Eintrage in der Form DE-DD-SA-DT-### wobei für ### 001 bis 999 steht
2. Lücken in ### suchen, dazu Funktion "f_freieNrsuchen" aufrufen mit Parameter Präfix z.B. f_freieNrsuchen("DE-DD-SA-DT-")
3. die Funktion liefert erste freie Suffix-Nummer
Achtung, die Funktion liefert die Nummer als Integer, muss also in Text formatiert werden

01.
Public Function f_freieNrsuchen(strPräfix As String) As Integer 
02.
Dim varMin, varMax, varHelp 
03.
Dim strBedingung 
04.
Dim i As Integer 
05.
 
06.
varMax = DMax("Right$(Inventarnummer,3)", "INVENTAR", "Inventarnummer like '" & strPräfix & "*'") 
07.
If IsNull(varMax) Then 
08.
    f_freieNrsuchen = 1     ' kein Eintrag für diesen Präfix gefunden, also 1 
09.
    Exit Function 
10.
End If 
11.
varMin = DMin("Right$(Inventarnummer,3)", "INVENTAR", "Inventarnummer like '" & strPräfix & "*'") 
12.
If varMin > 1 Then 
13.
    f_freieNrsuchen = 1     ' die 1 ist nicht belegt, also kann 1 benutzt werden 
14.
    Exit Function 
15.
End If 
16.
     
17.
For i = CInt(varMin) To CInt(varMax) 
18.
    varHelp = DLookup("Right$(Inventarnummer,3)", "INVENTAR", "Inventarnummer = '" & strPräfix & Format$(i, "000") & "'") 
19.
    If IsNull(varHelp) Then 
20.
        f_freieNrsuchen = i 
21.
        Exit Function 
22.
    End If 
23.
Next i 
24.
' keine Lücke gefunden, also varMax + 1 
25.
f_freieNrsuchen = CInt(varMax) + 1 
26.
         
27.
End Function
Gruß René
Bitte warten ..
Mitglied: Crustacean
09.07.2009 um 15:05 Uhr
AlohA!
Oh, herrlich!
Danke!
Dann werde ich mich jetzt wieder verstärkt damit befassen!

Grüße
Crustacean
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

LAN, WAN, Wireless
Access Point: Ubiquiti UAP AC PRO Einschätzung Reichweite (4)

Frage von TimMayer zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Freifunk über vorhandene Access Points ausstrahlen (4)

Frage von Uwoerl zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...