none
Eingabeformular in Word für MS-SQL Server Tabelle RRS feed

  • Frage

  • Hallo,

    ich habe mich mit dem Formularthema in Word beschäftigt, komme aber nicht so richtig weiter.
    Folgendes möchte ich erreichen.

    Ich habe ein Word 2013 Dokument, in dem die Inhalte mehrerer kleiner SQL-Server Tabellen angezeigt werden.
    Nun möchte ich dass ich in Feldern bestimmter Spalten Werte eintragen kann, die dann in die Tabellen auf dem Server zurück gespeichert werden.

    Ist das überhaupt machbar?

    Geht das mit Mitteln von Word oder muss ich dazu mit VBA arbeiten?

    Bin für jeden Tipp dankbar.

    Gruß

    cheapy

    Freitag, 29. Mai 2020 06:54

Alle Antworten

  • Ohne VBA kommst du da nicht weiter denn Formulare sind Bestandteil von VBA-Projekten.
    Und nur per VBA kannst du Verbindung zu einer DB aufnehmen um Datenänderungen durchzuführen.

    https://docs.microsoft.com/de-de/office/vba/library-reference/concepts/getting-started-with-vba-in-office

    Freitag, 29. Mai 2020 07:34
  • Hallo,

    OK, die Frage nach VBA war hier vielleicht etwas irreführend.
    Es ging mir da auch nur um das ob. VBA habe ich schon oft in anderen Office Produkten benutzt, nur halt nicht in Word.
    Da hab ich auch vorrangig ein Problem mit den Formularen. Da gibt es jaeine Menge vorgefertigter aber ich benötige lediglich eine einfache Tabelle. Anscheinend zu einfach um dafür eine Vorlage zu bauen.

    Nur, wenn man es noch nie gemacht hat ...

    Gruß

    cheapy

    Freitag, 29. Mai 2020 13:23
  • Hallo,

    mir ist es inzwischen gelungen eine SQL-Server Tabelle in mein Word Dokument einzubinden.
    Ich habe dann versucht in den Paramtern dieser Tabelle mit VBA die Verbindungsparameter auszulesen.
    Leider kann ich da nichts finden. Werden solche Daten nicht in dem Tabellenobjekt gespeichert?

    Wenn doch, wo finde ich die?

    Weitrere Frage, kann ich feststellen ob Felder dieser Tabelle überswchrieben wurden und kann ich einzelne Spalten vor Überschreiben schützen?

    Gruß

    cheapy

    Montag, 8. Juni 2020 11:31
  • Ich denke mal, die Verbindung wird zentral im Dokument gespeichert.

    Ob Felder überschrieben wurden kannst du wiederum nur per VBA feststellen:
    - Vor dem Laden die Tabellenwerte sichern
    - Nach dem Laden die Tabellenwerte vergleichen

    Ich denke, da musst du dich mal durcharbeiten:
    https://docs.microsoft.com/de-de/office/vba/api/overview/word/object-model


    Montag, 8. Juni 2020 12:29
  • Das die Verbindung zentral gespeichert wird kann ich mir nicht so recht vorstellen, da ich ja durchaus mehrere solscher Verbindungen haben kann.

    Und was das Objektmodell betrifft, gibt es da irgendeine Logik, nach der man suchen kann?
    Bei der Menge ist man ja  ohne Hinweis chancenlos. Ist ja wie mit der Nadel im Heuhaufen.

    Montag, 8. Juni 2020 13:12
  • Da hast du wohl recht. Das Excel-Modell ist da wesentlich klarer strukturiert.
    Aber ich denke, es ist ähnlich wie in Excel.
    Die Abfragen sind zentral gespeichert und erhalten durchnummerierte Namen (Abfrage1, Abfrage2...).
    In der jweiligen Tabelle ist dann nur ein Verweis auf die Abfrage mit dem Namen.

    In Excel hat das Objekt QueryTable, dass in QueryTables und dieses in Worksheet liegt.

    Wenn du im VBA-Editor bist, kannst du dir per F2 das Objektmodell anzeigen lassen.
    Hier gibts ein Suchfeld. Wenn man da nach "connect" sucht, finde ich ein OfficeDataSourceObject.
    Jetzt muss man nur mal sehen, wo dieses Objekt wieder aufgehangen ist (usw.).

    Ich vermute mal, dass dies irgendwo im Document-Objekt liegt.

    Montag, 8. Juni 2020 14:58