2.2k Aufrufe
Gefragt in Datenbanken von sundancer Mitglied (105 Punkte)
Hallo
ich arbeite mit Access 2007 und habe folgendes Problem.
zum Jahresende will ich einen 8 stelligen Datensatz lesen (z.B.20120020)
will die 2012 abtrennen und die Restlichen 4 Stellen mit dem Datum 2013
verbinden. (z.B. 20130020) diesen Satz will ich in der gleichen Tabelle abspeichern.
In mein Code muss ein Fehler sein, den es klapp nicht!
Hier der Code.
Private Sub btnJahrEnde_Click()
Dim ttab2 As DAO.Recordset
Dim ktab2 As String
Set ttab2 = CurrentDb.OpenRecordset("Select*from tbl_Verrechnung", dbOpenDynaset)
ttab2.MoveFirst
While ttab2.EOF = False
ktab2 = (rechts(ttab2!VerKoNr, , 4))
ttab2!VerKoNr = Year(Date) & ktab2
ttab2.Update
ttab2.MoveNext
Wend
ttab2 = Nothing
End Sub

Gruß
sundancer

7 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo sundancer,

Nachdem ich die Frage nicht ganz verstehe kann ich vorläufig nur einen Link beisteuern:

http://office.microsoft.com/de-at/access-help/verwenden-des-dialogfelds-suchen-und-ersetzen-zum-andern-von-daten-HA010075099.aspx

Gruß

Paul1
0 Punkte
Beantwortet von sundancer Mitglied (105 Punkte)
Hallo Paul1
besten Dank für Deine Mitteilung. Trift leider nicht ganz
mein Problem, ich beschreibe noch mal die Problematik.

In der Tabelle Verrechnung sind Eingangsrechnungen nach Nummern, dazu Namen, Preis usw. gesammelt. Vor jeder Nr.
ist das Jahresdatum also 20120001 20120002 usw.
Ich will die Datensätze lesen und als gleichen Satz mit neuem Jahr
verbunden als Nr. 20130001 20130002 usw. wieder in die gleiche Tabelle zurück schreiben.

ich hoffe, ich hab das verständlich rüber gebracht?

Gruß
sundancer
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo sundancer,

Wenn ich es richtig verstanden habe, soll a) nur z.B.2012001 durch 2013001 ersetzt werden, oder b) soll dann 2013001 mit dem gleichen Inhalt hinzugefügt werden.

zu a)

wäre mit einer Abfrage zu lösen, ein ungebundenes Feld hinzufügen, unter Aufbauen folgende Formel:

Bezeichnung1: Wenn("2012"=Teil([Bezeichnung];1;4);"2013" & Teil([Bezeichnung];5;4);"")

das ursprüngliche Feld Bezeichnung in der Entwursansicht ausblenden.

zu b)

Erstellung einer Union Abfrage aus 2 Abfragen:

1. Abfrage > nach Tabelle sowieso
2. Abfrage wie unter a) beschrieben, jedoch das gebundene Feld
Bezeichnung ausblenden
3. Aus den so vorbereitten Abfragen erstellen der Union Abfrage:
in der SQL-Ansicht folgenden Code eingeben:

SELECT IIf("2012"=Mid([Bezeichnung],1,4),"2013" & Mid([Bezeichnung],5,4),"") AS Bezeichnung1
FROM Tabelle1;
UNION SELECT Tabelle1.Bezeichnung
FROM Tabelle1;

So könnte ich es mir vorstellen

Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo sundancer,

Das ganze natürlich nur, wenn es in Dein Konzept passt, sonst müsste man sich was anderes einfallen lassen, ad hoc fällt mir dazu noch nichts ein, je nachdem ob a) oder b) gebraucht wird.

Gruß

Paul1
0 Punkte
Beantwortet von sundancer Mitglied (105 Punkte)
Hallo Paul1
ich habe im Formular Jahreswechsel ein Tastenfeld, wo ich die Veränderung mit VBA hinterlegen will. Code dafür, hab ich hier schon reingestellt.
Mit einer Abfrage mag das 1 mal gehen, im nächsten Jahr müsste man aber die 2013 in 2014 von Hand ändern.
das will ich nach Möglichkeit automatisch lösen.

Gruß
sundancer
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo sundancer,

Mit der nachfolgenden Formel wird auch das Datum in der Abfrage automatisch geändert:

Bezeichnung1: Wenn(Jahr(Datum())-1=Teil([Bezeichnung];1;4);Jahr(Datum()) & Teil([Bezeichnung];5;4);"")

Besser wäre, statt dem ungebundenen Feld "Bezeichnung1“ in der Entwurfsansicht der Tabelle ein gebundenes Feld "Bezeichnung1“ einzufügen und z.B. als Format "Allgemeine Zahl“ festzulegen, damit in der Abfrage die Formelergebnisse auch als Zahl ausgewiesen werden.

Einen eventuellen Fehler im Button, konnte ich leider mangels ausreichender VBA Kenntnisse nicht finden.

Gruß

Paul1

Access 2003
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo sundancer,

schau mal:

http://www.donkarl.com/forum/forums/thread-view.asp?tid=923&mid=2591#M2591

ob es brauchbar ist kannst Du sicher besser herausfinden.

Leider sind solche Links nicht sehr dicht gestreut.

Gruß

Paul1
...