Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Alle Daten in einen neuen DS speichern
zurück: PivotFormulare - Dezimalstellen weiter: Ereignis Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
27. Okt 2008, 09:19
Rufname:

Alle Daten in einen neuen DS speichern - Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi to @ll,

ich öffne ein vorhandenes gebundenes Formular mit Daten.
Nun möchte ich in diesen Daten ein paar Daten ändern.
Nun soll folgendes geschehen beim Speichern.

Das wäre der normale code:
Code:
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Es soll aber:
nicht in das alte geöffnete DS gespeichert werden,
sondern in einen neuen DS mit allen Daten in Formular gespeichert werden.

Ist sowas über VBA Code einfach zu losen?

Gruß
crusico
stpimi
Moderator Access


Verfasst am:
27. Okt 2008, 10:02
Rufname:
Wohnort: Graz


AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Servus!

So kannst Du das Kopieren eines Datensatzes erreichen:
Code:
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdCopy
    DoCmd.RunCommand acCmdPasteAppend
Das von Dir verwendete (bzw. vom Assistenten aufgezeichnete) DoMenuItem ist veraltet und wenig aussagekräftig und sollte daher tunlichst vermieden werden.
_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
27. Okt 2008, 10:34
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi,

1.Mit dein Befehl werden die Daten zwar in einen neuen DS gespeichert, aber
leider wird auch die änderung in das vorhandene, geöffnete DS mitgespeichert!

2. Wenn ich das Formular schliese, bekomme ich eine Meldung (Zwischenspeicher...) Kann man diese Meldung abschalten?
Willi Wipp
Moderator


Verfasst am:
27. Okt 2008, 13:51
Rufname:
Wohnort: Raum Wiesbaden

Re: Alle Daten in einen neuen DS speichern - Re: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi Crusico,

und warum kopierst Du den DS nicht bevor Du ihn aenderst?
Mit einer Anfuege-Abfrage z.B. sollte sich der DS ohne Zwischenablage kopieren lassen.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
27. Okt 2008, 15:03
Rufname:


AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi Willi Wipp,

wie meinst du das mit einer Abfrage, kannst du mir ein Beispiel erkären?
Willi Wipp
Moderator


Verfasst am:
27. Okt 2008, 16:51
Rufname:
Wohnort: Raum Wiesbaden

Re: Alle Daten in einen neuen DS speichern (II) - Re: Alle Daten in einen neuen DS speichern (II)

Nach oben
       Version: Office 2003

Hi Crusico,

na etwa so
Code:
INSERT INTO tblDeineTabelle (Feld1, Feld2, Feld3, ...)
SELECT Feld1, Feld2, Feld3, ...
FROM   tblDeineTabelle
WHERE  DeineID = Eval("Forms![frmDeinFormular]![DeineID]")
Die rufst Du dann an geeigneter Stelle einfach auf, bevor Du mit den Aenderungen anfaengst!
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
28. Okt 2008, 07:52
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Da mein Formular aus mehr als 150 Textfelder bestehen, müsste ich den Code lange (Jedes Testfeldname) schreiben Sad

Deswegen suche ich eine Einfacherern Weg das zu Lösen.

Ich könnte doch das Formular starten und dann sofort Kopieren, wenn ich dann was ändere, wird das alte DS nicht verändert nur das neue DS mit der Kopie.
Das müsste doch auch gehen oder?

Aber wie kann ich dann die Meldung unterdrücken die immer kommt (Zwischenspeicher...)?
Willi Wipp
Moderator


Verfasst am:
28. Okt 2008, 17:23
Rufname:
Wohnort: Raum Wiesbaden

Re: Alle Daten in einen neuen DS speichern (III) - Re: Alle Daten in einen neuen DS speichern (III)

Nach oben
       Version: Office 2003

Hi Crusico,

die 150 Felder lassen erst einmal den Verdacht eines suboptimalen DB-Modells keimen Wink
Man kann den SQL-Code auch via VBA zusammensetzen lassen. Wichtig ist nur den Primaerschluessel nicht zu uebertragen!
Was die Zwischenablage angeht, Du koenntest versuchen diese zu loeschen.
Siehe dazu z.B. Recordset in Clipboard "speichern" (EmptyClipboard)

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
29. Okt 2008, 07:59
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi,

über VBA könnte ich das auch lösen, will aber nicht 150 Textfeldernamen schreiben..

...suboptimalen DB-Modells...
Ich habe ein Werkzeug DB und pro Werkzeug sind 150 Messungen und die müssen dokumentiert werden, deswegen 150 Textfelder. Glaube nicht, das man das einfacherer machen kann oder?

Ich werde mal nach Recordset in Clipboard "speichern" (EmptyClipboard) suchen und lesen.
Marmeladenglas
komme zurecht


Verfasst am:
29. Okt 2008, 08:06
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Hi,
doch kann man,
das sind dann 150 Datensätze pro Werkzeug,(mit 1 Feld pro Messung) aber keine 150 Felder pro Datensatz !
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
29. Okt 2008, 10:33
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Und wie stellst du es an?

Ich brauch doch ein Formular mit 150 Textfelder... die muss ich dann alle selber benennen...
Willi Wipp
Moderator


Verfasst am:
30. Okt 2008, 02:43
Rufname:
Wohnort: Raum Wiesbaden

Re: Alle Daten in einen neuen DS speichern (IV) - Re: Alle Daten in einen neuen DS speichern (IV)

Nach oben
       Version: Office 2003

Hi Crusico,

die 1. Frage waere: Sind wirklich alle 150 Messwerte je Werkzeug zu erfassen?
a) Wenn Ja, dann kann man das Modell so lassen.
b) Wenn Nein, immer nur Wenige (unterschiedliche) nicht, dann kann man wohl beide Varianten einsetzen.
c) Wenn Nein, immer nur Wenige, dann sollte man es in jedem Fall umstellen.
Welcher Fall nun fuer Dich zutrifft, kannst nur Du entscheiden, dafuer haben wir zu wenig Kenntnis ueber Deine Aufgabenstellung.
Falls c) oder b) ==> c), dann benoetigst Du eine zusaetzliche Tabellle Messungsart.
Diese hat ein IdFeld (autowert, Primaerschluessel) und ein Text-Feld indem der Name der aktuellen Felder erfasst wird.
Eventuell kann man das noch um die Einheiten, Schwellwerte, etc. erweitern.
dann benoetugsrt Du noch eine zusaetzliche Tabelle um die n:m-Beziehung Werkzeug:Messart aufzuloesen.
Diese beinhaltet die Primaerschluessel der Tabellen als Fremdschluessel und den tatsaechlichen Messwert.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Crusico
zwischen Anfänger und Fortge.


Verfasst am:
30. Okt 2008, 09:07
Rufname:

AW: Alle Daten in einen neuen DS speichern - AW: Alle Daten in einen neuen DS speichern

Nach oben
       Version: Office 2003

Danke für die Info Willi,
für meine Augabe benötige ich immer 150 Messwerte pro Werkzeug. <- leider!

Gibt es keine andere Möglichkeit die Daten zu Kopieren und in einen neuen DS zu legen´?
Willi Wipp
Moderator


Verfasst am:
30. Okt 2008, 12:00
Rufname:
Wohnort: Raum Wiesbaden


Re: Alle Daten in einen neuen DS speichern (V) - Re: Alle Daten in einen neuen DS speichern (V)

Nach oben
       Version: Office 2003

Hi Crusico,

die Erstellung der Abfrage muss doch nur einmal erfolgen und kann z.B. mit folgender Hilfsfunktion erfolgen
Code:
Option Compare Database
Option Explicit

Public Function FnblnCreateInsertIntoQuery4Copy(strQuery As String, _
                                                strTable As String, _
                                                Optional lngId As Long = 0) _
                                               As Boolean
    Const cstrSQL   As String = "INSERT INTO [%Table%] ( %Fields% ) " & _
                                "SELECT %Fields% " & _
                                  "FROM [%Table%]"
   
    Dim strSQL      As String
    Dim strFields   As String
    Dim strIdField  As String
    Dim db          As DAO.Database
    Dim tdf         As DAO.TableDef
    Dim qdf         As DAO.QueryDef
    Dim fld         As DAO.Field
    Dim idx         As DAO.Index
    Dim prp         As DAO.Property
   
    Set db = CurrentDb
    Set tdf = db.TableDefs(strTable)
    For Each idx In tdf.Indexes                 ' Index-Auflistung durchlaufen
        If idx.Unique Then                                 ' eindeutiger Index
            If idx.Primary Then                            ' Primaerschluessel
                strIdField = idx.Fields(0).Name                 '1. Index-Feld
                If tdf.Fields(strIdField).Type <> 4 Then
                    Exit Function       ' Primaerschluessel aber kein Autowert
                End If
              Else
                Exit Function                         ' kein Primaerschluessel
            End If
        End If
    Next idx
    For Each fld In tdf.Fields                   ' Feld-Auflistung durchlaufen
        If fld.Name <> strIdField Then       ' nicht das Primaerschluesselfeld
            strFields = strFields & ", [" & fld.Name & "]"
        End If
    Next fld
    If strFields = "" Then Exit Function               ' keine Felder gefunden
    strFields = Mid$(strFields, 3)
    strSQL = Replace(Replace(cstrSQL, "%Table%", strTable), _
                     "%Fields%", strFields)
    If lngId <> 0 Then               ' ist ein Primaerschluesselwert angegeben
        strSQL = strSQL & " WHERE [" & strIdField & "] = " & lngId
    End If
    On Error Resume Next
    DoCmd.DeleteObject acQuery, strQuery    ' falls bereits vorhanden loeschen
    On Error GoTo 0
    db.CreateQueryDef strQuery, strSQL                     ' Abfrage erstellen
    FnblnCreateInsertIntoQuery4Copy = True
    Set idx = Nothing
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
End Function
' Aufruf im Direktbereich (Strg+G; Testfenster)
'FnblnCreateInsertIntoQuery4Copy "qryDeineAbfrage", "tblDeineTabelle"
An die Basis musst Du dann nur noch die WHERE-Klausel anhaengen.
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datum und Uhrzeit automatisch speichern 3 peinberger 1119 30. Dez 2004, 10:33
mapet Datum und Uhrzeit automatisch speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Daten für Aktualisierung aus Formular auslesen 1 Ulf 1155 03. Dez 2004, 11:19
lothi Daten für Aktualisierung aus Formular auslesen
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeige aller Daten älter als x Tage 2 abu 819 16. Nov 2004, 13:07
abu Anzeige aller Daten älter als x Tage
Keine neuen Beiträge Access Tabellen & Abfragen: eingefügte Bilder wieder als datei speichern ?! 2 icke 1210 22. Okt 2004, 07:19
Gast eingefügte Bilder wieder als datei speichern ?!
Keine neuen Beiträge Access Tabellen & Abfragen: Komment. u Daten in zelle schreiben, Zellenausrichtung festl 2 k@lle 816 06. Okt 2004, 11:49
k@lle Komment. u Daten in zelle schreiben, Zellenausrichtung festl
Keine neuen Beiträge Access Tabellen & Abfragen: Daten suchen in ACCESS. Daten aus Tabellen suchen! 7 Gast 2093 26. Aug 2004, 13:55
Gast Daten suchen in ACCESS. Daten aus Tabellen suchen!
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit Gruppierung in Felder Daten eingeben 1 mondi 534 23. Aug 2004, 12:39
lothi Abfrage mit Gruppierung in Felder Daten eingeben
Keine neuen Beiträge Access Tabellen & Abfragen: CurrentUser() in neuen Datensatz eintragen 2 mafke 924 16. Aug 2004, 15:49
mafke CurrentUser() in neuen Datensatz eintragen
Keine neuen Beiträge Access Tabellen & Abfragen: Export aus Abfrage (Nur Daten keine Formate) 7 Speay 1741 02. Aug 2004, 13:30
Willi Wipp Export aus Abfrage (Nur Daten keine Formate)
Keine neuen Beiträge Access Tabellen & Abfragen: Zusammenfassen von Daten 2 WaterMan 938 03. Jul 2004, 12:59
WaterMan Zusammenfassen von Daten
Keine neuen Beiträge Access Tabellen & Abfragen: Serienbreif in Word; Daten aus Access 1 Gast 723 14. Jun 2004, 09:55
Willi Wipp Serienbreif in Word; Daten aus Access
Keine neuen Beiträge Access Tabellen & Abfragen: Filter für Daten des aktuellen Jahres 4 Roter Baron 719 19. Mai 2004, 09:15
Roter Baron Filter für Daten des aktuellen Jahres
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: MS Frontpage