führende nullen

hi zusammen !

ich bastel hier gerade an einem access modul herrum…
jetz habe ich das problem dass mir das modul beim schnöden auslesen und wieder in eine andere tabelle hineinschreiben die führenden nullen verlohren gehen(!?)

sowohl quell- als auch ziel-feld sind text(50)

ein feld hat z.B. diesen inhalt : 00123
im zielfeld kommt dabei herraus : 123

hier der einzige part in dem dieses feld angefasst wird:

CurrentDb.Execute „Insert Into [zielTabelle] ( zielfeld) values (“ & rs![IDmitFührendenNullen] & „)“

(das quellfeld in eine string-variable zu schreiben und diese dann in das zielfeld zu schreiben hat natürlich auch nichts gebracht :frowning:)

danke vorab !
bin um jeden tip dankbar !
\lila

ein feld hat z.B. diesen inhalt : 00123
im zielfeld kommt dabei herraus : 123
hier der einzige part in dem dieses feld angefasst wird:
CurrentDb.Execute „Insert Into [zielTabelle] ( zielfeld)
values (“ & rs![IDmitFührendenNullen] & „)“
(das quellfeld in eine string-variable zu schreiben und diese
dann in das zielfeld zu schreiben hat natürlich auch nichts
gebracht :frowning:)
bin um jeden tip dankbar !

Hi lila,
kenne Access Null. In excel würde ich das ggfs so machen
… cstr("00123) bzw cstr(variable)
… right(„00000“ & variable,5)
naja, echt k.A. ob dir das weiterhilft.
Gruß
Reinhard

Hi lila,
kenne Access Null. In excel würde ich das ggfs so machen
… cstr("00123) bzw cstr(variable)
… right(„00000“ & variable,5)
naja, echt k.A. ob dir das weiterhilft.
Gruß
Reinhard

naja… ne möglichkeit isses…
aber viel lieber würde ich verstehen warum das nicht klappen sollte !!
in nem anderen modul mach ich mit dem gleichen feld auch nichts anderes… mit den gleichen id´s und da werden die führenden nullen astrein übernommen !(!?)
glaub ich geh mal kippchen rauchen und bisschen haare raufen *grmpf
ne andere alternative wär anstatt dem feld mit den id´s, ein memo feld zu nehmen in dem jeweils ein halber aufsatz steht
allerdings is das natürlich weder hübsch noch besonderst performant

Hi
habe meine Daten auch in Access und mit der Hilfe hier schon recht weit gekommen.
Meine Datensätze in Access sind Textfelder.
Ich lese die Daten auch als Texte in Strings aus.
Damit bleiben alle Nullen erhalten.
Ansonsten ist bei dir irgendwo ne Zahl deklariert.

Melde dich nochmal falls du Fragen hast.

Mfg Werner

naja… ne möglichkeit isses…
aber viel lieber würde ich verstehen warum das nicht klappen
sollte !!
in nem anderen modul mach ich mit dem gleichen feld auch
nichts anderes… mit den gleichen id´s und da werden die
führenden nullen astrein übernommen !(!?)

Hi lila,
netter Vorname, pink panther wäre begeistert*g
wie wärs mit format(variable,„00000“) o.ä.
Und logisch hast du recht, das warum ist zu klären, denn es kann ja wieder mal auftreten und du wirst zum haareraufenden Kettenraucher :smile:
Wie gesagt, kenne access nicht, aber du hast die Lösung direkt vor dir, du sagst ja, in dem einen Fall geht es, im anderen nicht, also sind beide Fälle nicht gleich, also checke alle Unterschiede ab und du kommst auf die Lösung.
Gruß
Reinhard

Format Automatisch???
Wahrscheinlich hast du dein Format auf Automatisch für die Spalte stehen. Stell Sie auf Text um.

Mfg Werner

Wahrscheinlich hast du dein Format auf Automatisch für die
Spalte stehen. Stell Sie auf Text um.

Mfg Werner

du meinst in der zieltabelle ?
nein… stehst auf text(50)

hab den code mal auf das minimum reduziert… „fehler“ bleibt bestehen…
führende nullen verschwinden im „nirwarna“ :wink:


Sub tescht()

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(„tabelle3“)

db.Execute „Delete * from ergebnis2“
rs.MoveFirst

Do Until rs.EOF = True
CurrentDb.Execute „Insert Into ergebnis2 ( id) values (“ & rs![id] & „)“
rs.MoveNext
Loop

End Sub

Gruß
\lila

Hi
verstehe die Programmzeilen so nicht,
verstehe nur Value *g*. Vielleicht sind Values keine Texte???
Veruschs doch mal mit Rst.Fields(2) = Rst.Fields (1)

1 ist die erste Spalte.
So kopierst du die Daten auch in einem Datensatz von einer in eine andere Spalte. Sollte auch über zwei Recordsets und deren Datensätze funktionieren.
Anstatt 1 kannst du natürlcih auch den Namen der Spalte angeben
.Fields(„Nirwarna“). Mit oder ohne „“ weiss ich jetzt auswendig nicht.

Mfg Werner

Hi
verstehe die Programmzeilen so nicht,
verstehe nur Value *g*. Vielleicht sind Values keine Texte???

jo… values sind keine texte… sind variant
und die werden hier unpraktischerweise als zahl interpretiert

Veruschs doch mal mit Rst.Fields(2) = Rst.Fields (1)

1 ist die erste Spalte.
So kopierst du die Daten auch in einem Datensatz von einer in
eine andere Spalte. Sollte auch über zwei Recordsets und deren
Datensätze funktionieren.
Anstatt 1 kannst du natürlcih auch den Namen der Spalte
angeben
.Fields(„Nirwarna“). Mit oder ohne „“ weiss ich jetzt
auswendig nicht.

Mfg Werner

versteh ich nich… bzw. bekomm ich nicht zum laufen :frowning:

wenn ich ne alternative zu „values“ hätte… die eindeutig string darstellt2… wäre mein problem gegessen

So vielleicht
'Dimensionierung
Public Cn As New ADODB.Connection 'Verbindung zur Datenbank
Public RsT As New ADODB.Recordset 'Verbindung zur Datenbank
Dim X As String
Dim Y As String

'öffnet die Verbindung zur Datenbank
Cn.Provider = „Microsoft.Jet.OLEDB.4.0“
Cn.ConnectionString = „Data Source=“ & App.Path & „\IBFDatenbank.mdb;“
Cn.Open

With RsT
.ActiveConnection = Cn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = Select * From Tabelle
.Open
.MoveFirst

Do Until .EOF
X=Str(.Fields(0)) 'ich glaub 0 ist die 1.Spalte, mußte
ausprobieren
Y=Str(.Fields(1)) 'Wert 2.Spalte im Datensatz usw.
.MoveNext
Code für X-Wert Zuweisung, wo er hin soll
Loop
.Close
End With
Und dann mußt du eben noch zuweisen, wo die Daten hinsollen.
Endweder über die gleiche Prozedur ein 2.Recordset öffnen und dann
mit einer parallelen Schleife die Daten rüberbringen.

jo… values sind keine texte… sind variant
und die werden hier unpraktischerweise als zahl interpretiert
wenn ich ne alternative zu „values“ hätte… die eindeutig
string darstellt2… wäre mein problem gegessen

Hi lila,
in excel gibt es neben .value auch noch .text
Gruß
Reinhard

hm ja… schitn hier aber nicht zu funktionieren

dennoch danke

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

es kann doch nicht war sein, dass ich über siebenundzwanzig ecken gehen muss um einen string aus einer tabelle in die andere zu schreiben !?!?
ich zweifel langsam an mir selbst ^^

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich beiss gleich in den tisch

eben gehts… vielen danke euch beiden
falls ich noch dahinter steig warum es jetzt geht… und vorhin eben nicht sag ich gerne bescheid

hab es aus lauter frust stupide noch einmal mit dem weg über eine stringvariable versucht… und schwupps funktioniert es

glaub ich muss mich heut noch irgendwie austoben… sowas macht mich narrisch

sind das 27 Ecken.
Naja bin eben ein Umstandskrämer, kenne mich nicht mit so knappen Befehlszeilen aus.

Mfg Werner

Sub tescht()

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(„tabelle3“)

db.Execute „Delete * from ergebnis2“
rs.MoveFirst

Do Until rs.EOF = True
CurrentDb.Execute „Insert Into ergebnis2 ( id) values (’“ & rs![id] & „’)“
rs.MoveNext
Loop

End Sub

man beachte die zeile :
CurrentDb.Execute „Insert Into ergebnis2 ( id) values (’“ & rs![id] & „’)“

ohne diese unscheinbaren ’ wird das nämlich nix mim string *schimpf

ich geh jetz mal noch eine plöken und entscheid mich ob ich mich in die ecke stell und schäme… oder ob ich mich doch noch bisschen drüber aufreg ^^