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

Access 1 Textfeld auf 2 Spalten in einer Tabelle aufteilen, beim speichern

Frage Entwicklung VB for Applications

Mitglied: bumbum

bumbum (Level 1) - Jetzt verbinden

16.09.2009, aktualisiert 14:34 Uhr, 12974 Aufrufe, 5 Kommentare

Hallo Leute,
ich habe das Problem, dass ich Daten in ein Textfeld eingebe und diese Daten sollen beim speichern auf 2 Spalten in einer Tabelle aufgeteilt werden.
Bsp.: "56123-816" ist der Wert den ich eingebe
"56123" soll in die Spalte "LiefNr"
UND "816" soll in die Spalte "ArtNr" gespeichert werden.

Meine Frage:
Ist das von mir beschriebene Beispiel möglich und wenn ja, wie?

Ich Habe es schon mit den Excel-Formeln, LINKS und RECHTS versucht, aber das funktioniert nicht so wie ich das gemacht habe.

LG BUMBUM
Mitglied: Biber
16.09.2009 um 12:31 Uhr
Ja wie jezz', bumbum,

Ich Habe es schon mit den Excel-Formeln, LINKS und RECHTS versucht
ist es denn nun ein Accessformular oder sind wir grad in einem Excel-Sheet?

Und egal was nun für eine Krücke - was genau soll denn nun der Algorithmus sein für die Trennung?
Fest verdrahtet mid( eingabefeld,1, 5) und mid(eingabefeld,6,3) oder ein split() am Trennzeichen "-"?

Grüße
Biber
Bitte warten ..
Mitglied: bumbum
16.09.2009 um 12:50 Uhr
Hallo Biber,
es hat mit der mid() Funktion funktioniert, vielen Dank.

LG BUMBUM
Bitte warten ..
Mitglied: bumbum
22.09.2009 um 11:03 Uhr
Hey Biber,
kannst du mir mal erklären wie das mit der SPLIT()-Funktion in VBA funktioniert, wenn ich in Text1 = 65123-816 eingebe.

Was wird bei der funktion ausgegeben?
Was muss ich eingeben, wenn ich die "816" ausgegeben haben möchte?

LG bumbum
Bitte warten ..
Mitglied: Biber
22.09.2009 um 20:26 Uhr
Moin bumbum,

ich wollte eigentlich erst mit einem freundlichen RTFM antworten, aber die Split()/Join-Funktionen sind zumindest im Access 2000/2003 shice dokumentiert.

Also deshalb erst die lange Ausführung der Antwort:

Lies dir diesen Testschnipsel kurz durch, kopier ihn in den VBA-Editor und steppe ihn dann mit F8 durch.

01.
Sub splitAndJoinTest() 
02.
Dim aStrWithoutDimension() As String 
03.
Dim teststr As String 
04.
Dim i As Integer 
05.
teststr = "65123-816-1711-0911" 
06.
aStrWithoutDimension = Split(Expression:=teststr, delimiter:="-") 
07.
 
08.
Debug.Print "zu zerlegender String 1 " & teststr 
09.
For i = 0 To UBound(aStrWithoutDimension) 
10.
   Debug.Print "aStrWithoutDimension(" & i & ") = " & aStrWithoutDimension(i) 
11.
Next 
12.
 
13.
aStrWithoutDimension = Split(teststr, "-") 
14.
 
15.
Debug.Print "zu zerlegender String 2 " & teststr 
16.
For i = 0 To UBound(aStrWithoutDimension) 
17.
   Debug.Print "aStrWithoutDimension(" & i & ") = " & aStrWithoutDimension(i) 
18.
Next 
19.
 
20.
Debug.Print "Wieder gejoint mit - : " & Join(aStrWithoutDimension, "-") 
21.
Debug.Print "Wieder gejoint mit #  :" & Join(SourceArray:=aStrWithoutDimension, delimiter:="#") 
22.
 
23.
End Sub
Nach dem Ausführen,/ Durchsteppen sollte in Deinem Direktfenster folgende Ausgabe zu sehen sein:
01.
zu zerlegender String 1 65123-816-1711-0911 
02.
aStrWithoutDimension(0) = 65123 
03.
aStrWithoutDimension(1) = 816 
04.
aStrWithoutDimension(2) = 1711 
05.
aStrWithoutDimension(3) = 0911 
06.
zu zerlegender String 2 65123-816-1711-0911 
07.
aStrWithoutDimension(0) = 65123 
08.
aStrWithoutDimension(1) = 816 
09.
aStrWithoutDimension(2) = 1711 
10.
aStrWithoutDimension(3) = 0911 
11.
Wieder gejoint mit - : 65123-816-1711-0911 
12.
Wieder gejoint mit # : 65123#816#1711#0911
Dreimal durchlesen, dann hast Du alles verstanden.

Kurzfassung mit dem Nötigsten:
  • ZielArray := Join("ein-Text-mit-Trennzeichen","-") legt an/befüllt ein eindimensionales Array mit "Komponenten" des gesamten Strings. Wo getrennt wird sagen die Trennzeichen/Delimiter
  • "eindimensionale Arrays" werden von Nicht-Profi-Programmierern (z.b. meine Omma) oft auch einfach als "Listen" bezeichnet, Komponenten als "Token" oder "Elemente"
  • Wichtig ist: das ZielArray darf/sollte keine vorgegebene Länge haben. Meine Omma würde sagen: "Du musst die Liste definieren, darfst aber nicht vorher sagen, wie lang die wird." Das macht nämlich die Join()-Funktion.
  • Gegenstück zur Split()-Funktion ist die Join()-Funktion. "Join()" ist neudeutsch für "Zusammenbrat()".
  • Das Ergebnis von Split("65123-816","-") wären also im ZielArray die Elemente ZielArray(0) und ZielArray(1).
  • und in Zielarray(0) steht "65123", in Zielarray(1) steht "816".

Hoffe, es beantwortet Deine Frage.... im Erklären bin ich nicht so gut.

Grüße
Biber
Bitte warten ..
Mitglied: bumbum
23.09.2009 um 07:23 Uhr
Vielen dank Biber,
das ist doch gut erklär, zumindest denke ich das ich das verstanden habe.

LG bumbum
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...