none
Access 2003 Variablenname in Tabelle speichern

    Frage

  • Ich möchte für eine Suchen/ersetzen Funktion in meiner Datenbank eine „Variable“ in einer Tabelle speichern und auch wieder auslesen können.

     

    Die „Variable“  kann die unterschiedlichste form haben

     

    Global

    Date()

    Forms!frmSoundso!Feldname

    ….

     

    Die Tabelle hat dann den aufbau

     

    ID=AutoWert

    SucheNach=String

    ErsetzeDurch=String

     

    Inhalt als Beispiel

     

    1

    [Date()]          

    Date()

    2

    [AktuellerSachbearbeiter]

    SBAID

    3

    [Briefansprache]

    Forms!frmSoundso!Feldname

     

    Suchen und ersetzen bekomme ich ja hin aber eben nicht wenn ich in meiner tabelle die „Variable“ ansich speichere

     

    Ich habe eine function in der ich

     

    TextErsetzungen = SuchenErsetzen(TextErsetzungen, rs.Fields(1), rs.Fields(2))

     

    Ich weiss nur nicht wie ich es hinbekommen kann das ich das feld ErsetzeDurch welches ja die variabel an sich ist dann auslesen kann – weil in der Tabelle ist es ja logischerweise einfach nur text

     

    Ich hoffe da ist überhaupt zu verstehen was ich möchte

    Montag, 28. März 2011 16:12

Antworten

  • Ach so,

    da war ich auf'm falschen Zug. Benutze Eval(), also in etwa

    MeineVariable = Eval(DLookup("[Briefansprache]", "[DeineTabelle]")
    


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    • Als Antwort markiert MCDPone Mittwoch, 30. März 2011 10:11
    Mittwoch, 30. März 2011 09:26
    Moderator
  • Hallo MCDPone,

    MCDPone schrieb folgendes:

    abner sobald ich eine Variable oder Globale Variable "abfrage"
    bekomme ich den Fehler 2482 kann den eingegebenen namen ...(also meine Variable)
     nicht finden wenn ich diese aber eine zeile vorher mit einer msgbox abfrage ist
    sie da

    Eine Variable welche Du unter VBA angelegt hast kannst Du nicht mit
    Eval auswerten.

    Frage die Variable in einer Funktion ab und werte die Funktion (Namen
    der Funktion in der Tabelle speichern) mit Eval aus.

    Gruß
    Gunter


    Access FAQ: http://www.donkarl.com

          http://www.avenius.de - http://www.AccessRibbon.de
    http://www.ribboncreator.de - http://www.ribboncreator2010.de

    • Als Antwort markiert MCDPone Mittwoch, 30. März 2011 13:55
    Mittwoch, 30. März 2011 13:21
    Moderator

Alle Antworten

  • hi,

    du musst im Grunde wissen, um welchen Typ es sich handelt. Dann kannst du nach dem auslesen den Wert entsprechend korrigieren.

    Ein einfacher Ansatz: Die Funktion zum Speichern nimmt einen Variant als Parameter für den Wert. Du speicherst den VarType() des Wertes als Typinformation. Beim Auslesen kannst du ihn entsprechend zurückkonvertieren.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 30. März 2011 08:22
    Moderator
  • Verstehe ich leider noch nicht ganz - besser gesagt überhaupt nicht

    ich lese zb. den String

    Forms!frmSoundso!Feldname

     

    aus meiner tabelle aus nun möchte ich diesen wert der in dem feld steht einer Variablen zuweisen also in etwa

     

    MeineVariable = Forms!frmSoundso!Feldname

     

    aber wenn ich das mache wird es natürlich so sein das

     

    MeineVariable  jetzt den inhalt "Forms!frmSoundso!Feldname" hat und nicht den wert des Feldes

     

     

     

     

    Mittwoch, 30. März 2011 09:10
  • Ach so,

    da war ich auf'm falschen Zug. Benutze Eval(), also in etwa

    MeineVariable = Eval(DLookup("[Briefansprache]", "[DeineTabelle]")
    


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    • Als Antwort markiert MCDPone Mittwoch, 30. März 2011 10:11
    Mittwoch, 30. März 2011 09:26
    Moderator
  • Genau das meine ich DANKE
    Mittwoch, 30. März 2011 10:11
  • geht (fast) alles

    ich kann so Date() auswerten auch mit Format(Date(), "mmdd") auch Forms!frmAB!Briefansprache

     

    abner sobald ich eine Variable oder Globale Variable "abfrage" bekomme ich den

    Fehler 2482 kann den eingegebenen namen ...(also meine Variable)  nicht finden

    wenn ich diese aber eine zeile vorher mit einer msgbox abfrage ist sie da

    Mittwoch, 30. März 2011 12:36
  • Hae? Ein Stück Beispielcode wäre nicht schlecht.
    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 30. März 2011 12:50
    Moderator
  • Hallo,
     
    Am 30.03.2011 14:36, schrieb MCDPone:
    > geht (fast) alles
    >
    > ich kann so Date() auswerten auch mit Format(Date(), "mmdd") auch
    > Forms!frmAB!Briefansprache
    >
    > abner sobald ich eine Variable oder Globale Variable "abfrage" bekomme
    > ich den
    >
    > Fehler 2482 kann den eingegebenen namen ...(also meine Variable) nicht
    > finden
    >
    > wenn ich diese aber eine zeile vorher mit einer msgbox abfrage ist sie da
     
    erstell Dir dazu in einem Standardmodul eine Public Function, die Dir
    jeweils den Wert Deiner (globalen) Variablen zurückgibt. Den Namen der
    Funktion speicherst Du dann statt des Variablennamens in der Tabelle.
     
    Public Function getMyVariable() As Long
       getMyVariable = MyVariable
     
    End Function
     
    Der Code zeigt eine Funktion für de Variable MyVariable. Statt
    MyVariable speicherst Du getMyVariable in Deiner Tabelle.
     HTH
    --
    Thomas
     
    Homepage: www.Team-Moeller.de
     
    Mittwoch, 30. März 2011 13:18
  • Hallo MCDPone,

    MCDPone schrieb folgendes:

    abner sobald ich eine Variable oder Globale Variable "abfrage"
    bekomme ich den Fehler 2482 kann den eingegebenen namen ...(also meine Variable)
     nicht finden wenn ich diese aber eine zeile vorher mit einer msgbox abfrage ist
    sie da

    Eine Variable welche Du unter VBA angelegt hast kannst Du nicht mit
    Eval auswerten.

    Frage die Variable in einer Funktion ab und werte die Funktion (Namen
    der Funktion in der Tabelle speichern) mit Eval aus.

    Gruß
    Gunter


    Access FAQ: http://www.donkarl.com

          http://www.avenius.de - http://www.AccessRibbon.de
    http://www.ribboncreator.de - http://www.ribboncreator2010.de

    • Als Antwort markiert MCDPone Mittwoch, 30. März 2011 13:55
    Mittwoch, 30. März 2011 13:21
    Moderator
  • Hallo MCDPone,

    MCDPone schrieb folgendes:

    funktioniert nur wenn eine Variable an sich kommt leider nicht

    Wie schon geschrieben: "Eine Variable welche Du unter VBA angelegt hast kannst Du nicht mit
    Eval auswerten."

    Gruß
    Gunter


    Access FAQ: http://www.donkarl.com

          http://www.avenius.de - http://www.AccessRibbon.de
    http://www.ribboncreator.de - http://www.ribboncreator2010.de

    Mittwoch, 30. März 2011 13:55
    Moderator
  • Hallo,

    MCDPone wrote:

    abner sobald ich eine Variable oder Globale Variable "abfrage" bekomme ich den
    Fehler 2482 kann den eingegebenen namen ...(also meine Variable)  nicht finden

    http://www.donkarl.com?FAQ3.15 Variablen in Abfragen verwenden.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 31. März 2011 05:09
    Moderator
  • Hallo MCDPone

    MCDPone wrote:

    TextErsetzungen = SuchenErsetzen(TextErsetzungen, rs.Fields(1),
    rs.Fields(2))



    Ich weiss nur nicht wie ich es hinbekommen kann das ich das feld
    ErsetzeDurch welches ja die variabel an sich ist dann auslesen kann –
    weil in der Tabelle ist es ja logischerweise einfach nur text

    Evtl. kommst Du mit der Eval() Funktion weiter. Damit solltest Du Ausdrücke, die Du im rs.Fields(2) drin hast, auswerten können.

    Also z.B.:

    TextErsetzungen = SuchenErsetzen(TextERsetzungen, rs(1), Eval(rs(2))

    BTW: Fields() kannst Du weglassen, es reicht den Index des Feldes anzugeben. Fields ist die Default Collection des Recordset Objects.

    Gruss
    Henry

    Donnerstag, 7. April 2011 09:27
  • Hallo Henry,

    Henry Habermacher schrieb folgendes:
    ...

    Evtl. kommst Du mit der Eval() Funktion weiter. Damit solltest Du Ausdrücke, die Du im rs.Fields(2) drin hast, auswerten können.

    ... aber IMO keine Variablen.

    Gruß
    Gunter


    ________________________________________________________
    Access FAQ: http://www.donkarl.com

          http://www.avenius.de - http://www.AccessRibbon.de
    http://www.ribboncreator.de - http://www.ribboncreator2010.de

    Donnerstag, 7. April 2011 09:32
    Moderator
  • Hallo Gunter

    Gunter Avenius [MVP] wrote:

    ... aber IMO keine Variablen.

    Wo Du recht hast, hast Du recht.

    Gruss
    Henry

    Donnerstag, 7. April 2011 10:16