Methode item für das objekt forms ist fehlgeschlagen

Moderator: ModerationP

Methode item für das objekt forms ist fehlgeschlagen

Beitragvon NataschaB » 31. Mär 2021, 10:22

Hallo zusammen
Ich habe folgendes problem:
Meine Datenbank lief lokal problemlos und alle vba Programmierungen gingen. Jetzt habe ich die DB auf den Terminalserver kopiert. Jetzt kriege ich beim Klick auf meine word-uebergabe den o. G. Fehler. Beim Start erhalte ich beim ersten Formular auch direkt einen ole Fehler bei onload. Hier setze ich tempvars. Irgendwie geht jetzt gar nix mehr. Hat jmd eine Idee?

Danke euch
NataschaB
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon ComputerVersteher » 31. Mär 2021, 10:49

Hi,

gleiche Office Version auf RDS wie auf Develop? Early Binding (mit inkompatiblen Referenzen)? Accde?

Gruß CV
"Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."
Benutzeravatar
ComputerVersteher
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 526
Registriert: 23. Jul 2016, 18:17

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Gast » 31. Mär 2021, 10:51

Hallo. Was bedeutet early binding?
Gast
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon ComputerVersteher » 31. Mär 2021, 11:01

Gast hat geschrieben:Was bedeutet early binding?
Das Du besser keine Software für Terminal-Server entwickelst ;( LMDDGTFY

Gruß CV
"Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."
Benutzeravatar
ComputerVersteher
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 526
Registriert: 23. Jul 2016, 18:17

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Gast » 01. Apr 2021, 08:51

OK. Das hilft mir natürlich nicht. Ich bin auch kein Programmierer sondern mache das als spezial Projekt neben meiner anderen Arbeit weil wir bei uns in der Firma kein crm haben.

Ich kriege word ja mit late binding zum laufen. Das template öffnet sich. Die bookmarks werden aber nicht gefüllt. Da hängt sich der Code auf mit der o. G. Meldung. Muss man die bookmarks beim late binding anders ansprechen?
Gast
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Bitsqueezer » 01. Apr 2021, 08:59

Hallo,

niemand kann in Deinen Code schauen oder Deinen Terminal Server testen.

Wie wäre es mal mit fehlerhaften Code in's Forum kopieren mit genauen Fehlermeldungen und Zeile, wo es auftritt? Informationen zu verwendeten Variablen? Informationen zu der Umgebung auf Deinem Terminal Server? Um nur ein paar Beispiele zu nennen.

Was Du sagst ist: "Hey, ich hab hier einen Fehler, weiß jemand warum?" - mit etwa dieser Menge Informationsgehalt. Bei solch massiver Informationsflut wundert es mich, daß überhaupt jemand geantwortet hat...

Die Arbeit mit dem Einzelschrittdebugger von VBA sollte Dir mal minimal vertraut sein, wenn nicht, dann lies Dich erst mal in das Thema ein. Du magst kein Programmierer sein, aber es gibt, wie bei jeder Arbeit, nun mal Werkzeuge, die man bei seiner Arbeit braucht.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Alada » 06. Mai 2021, 08:36

Hallo zusammen,

jetzt habe ich endlich wieder Internet und kann hier noch mal meinen Fehler genau beschreiben:

- Datenbank lokal läuft einwandfrei, alle VBA Projekte funktionieren, Word wird geöffnet, wenn ich einen Datensatz übergebe und in Word werden Marker gefüllt
- Datenbank läuft auf dem Terminal Server erst mal korrekt. Sobald ich aber VBA Automationen aufrufe, erhalte ich immer an der gleichen Stelle folgenden Fehler:
- Laufzeitfehler: Die Methode "Item" für das Objekt "Form" ist fehlgeschlagen.

Word wird auch hier geladen und gestartet. Sobald aber die Befüllung des Word-Dokuments beginnt gibt es den Fehler. Genau an dieser Stelle:
Variable = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname]

Irgendwie scheint er auf das Feld nicht zugreifen zu können. Wie gesagt, lokal funktioniert das einwandfrei.
Ich habe auch gegoogelt - aber die Lösungen helfen alle nicht...

Hat jemand eine Idee?????

P.S.: Auf dem Terminal Server ist die gleiche Version von Access und Word installiert.
Alada
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 14
Registriert: 26. Feb 2021, 12:03

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon SGast » 06. Mai 2021, 08:59

Hallo,
versuche zunächst mal außerhalb deiner Word-Automatisierung dir den Wert anzeigen zu lassen:
Code: Alles auswählen
msgbox [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname]


Gruß Steffen
SGast
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon SGast » 06. Mai 2021, 09:00

Auf dem Terminal Server ist die gleiche Version von Access
Beide Versionen auf Deutsch?

Gruß Steffen
SGast
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Alada » 06. Mai 2021, 09:05

Hallo,

mit MsgBox [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname] erhalte ich genau die gleiche Fehlermeldung (Methode item für das Objekt...)

Ja, beide Versionen sind Deutsch...
Alada
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 14
Registriert: 26. Feb 2021, 12:03

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon SGast » 06. Mai 2021, 09:19

Hallo,
so eine richtige Idee habe ich aus der Ferne nicht :? .

Du kann die Datenbank mal Komprimieren/Reparieren und den VBA-Code (neu) kompilieren.

Gruß Steffen
SGast
 

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Bitsqueezer » 06. Mai 2021, 09:37

Hallo,

am besten zeigst Du mal den ganzen Code, den Du hier verwendest.

Grundsätzlich sieht die Referenz auf das Control erst mal in Ordnung aus. Fragt sich, was "Variable" ist, wenn nicht als Variant deklariert, kann diese nicht mit NULL umgehen und das Feld könnte NULL sein. Auch hoffe ich mal, daß Du nicht ernsthaft eine Variable "Variable" genannt hast...

Wenn der Code da stehenbleibt, versuche im Direktfenster mit "?" und der Feldreferenz den Feldinhalt anzuzeigen. Mit der IsNull-Funktion kannst Du auch prüfen, ob der Inhalt NULL ist.

Darüber hinaus sollte das Control nicht den gleichen Namen haben wie das Feld, an das es gebunden ist.

Die Fehlermeldung besagt allerdings, daß "Item" für das Objekt "Forms" versagt hat, was darauf hindeuten würde, daß das Formular nicht geladen ist. Geladene Formulare landen in der "Forms"-Collection und darin müßtest Du "Navigationsformular" finden.

Versuche mal im Direktfenster:

Code: Alles auswählen
?Forms("Navigationsformular").Name


sobald der Code an der Stelle abbricht. Ich vermute, daß hier die gleiche Fehlermeldung kommt.

Eben daher wäre es notwendig, daß Du den ganzen Code zeigst und wo er steht.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Alada » 06. Mai 2021, 11:00

OK, gerne.

Also, das Navigationsformular hat ein Unterformular, welches einen Button hat. Klickt man auf den Button startet ein Formular "Auswahl an Word". Hier kann ich eine Vorlage für den Word-Brief wählen.
Dann klicke ich auf OK. DAs Navigationsformular und das Unterformular sind beide geöffnet und das Formular "Auswahl an Word" ist als Popup darüber:

Code: Alles auswählen
Private Sub BriefAnFirma_Click()

Dim MarkenAuswahl As String
Dim SprachenAuswahl As String
MarkenAuswahl = Me.ComboBoxMarke.Value
 
Dim oWordApp As Word.Application
Dim oWordDoc As Word.Document
Dim DateiPfad As String
 
 varNachnameUser = DLookup("[Nachname]", "Personal", "[ID] = [TempVar]![CurrentUserID]")
 varVornameUser = DLookup("[Vorname]", "Personal", "[ID] = [TempVar]![CurrentUserID]")
 varAbteilungUser = DLookup("[Abteilung]", "Personal", "[ID] = [TempVar]![CurrentUserID]")
   
 If MarkenAuswahl = "XX" Then
    DateiPfad = "XXX\EM-Briefvorlage.dotx"
 ElseIf MarkenAuswahl = "XXX" Then
    DateiPfad = "XXX\KM-Briefvorlage.dotx"
ElseIf MarkenAuswahl = "XXXX" Then
    DateiPfad = "XXX\FO-Briefvorlage.dotx"
    Else
    MsgBox "Keine Marke gewählt"
 End If
 
Set oWordApp = CreateObject("Word.Application")
 
 With oWordApp
 .Documents.Add Template:=DateiPfad
 .Visible = True
 
 With .ActiveDocument
 
 .Bookmarks("Firmenname").Range.Text = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname] --> Hier ist der STOPP!!!!
 
 .Bookmarks("Strasse").Range.Text = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Strasse, Nummer]
 
 .Bookmarks("PLZ").Range.Text = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![PLZ]
 
 .Bookmarks("Ort").Range.Text = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Ort]
 
 .Bookmarks("Land").Range.Text = [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Land]
 
 .Bookmarks("Anrede").Range.Paragraphs(1).Range.Delete
 
 .Bookmarks("APVorname").Range.Text = varVornameUser
 .Bookmarks("APNachname").Range.Text = varNachnameUser
 .Bookmarks("APAbteilung").Range.Text = varAbteilungUser
 
  End With
   .Activate
  End With
 Set oWordApp = Nothing
 Set oWordDoc = Nothing
 DoCmd.Close acForm, "VorlagenAuswahlWord"
End Sub
Alada
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 14
Registriert: 26. Feb 2021, 12:03

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Bitsqueezer » 06. Mai 2021, 11:32

Hallo,

OK, hier sind gleich mehrere Probleme.

Die Variablen "var..." sind nicht deklariert. Entsprechend fehlt diesem und vermutlich auch allen anderen Modulen der Eintrag "Option Explicit" als erste Zeile.
Bitte in JEDES Modul als erste Zeile einfügen und danach Debuggen-Kompilieren in VBA auswählen. Dann alle Fehler beheben, die VBA anzeigt.

Dann greifst Du auf "TempVar" zu - was ist das? Wenn Du die Access TempVars meinst, dann muß es auch "TempVars" heißen und nicht "TempVar". Performanter wäre es hier, ein Recordset zu öffnen, so daß Du die Daten nur einmal laden mußt, statt für jede Einzelinformation eine eigene Abfrage per DLookup.

Als nächstes zu der Fehlerzeile: Du hast nichts zum Ergebnis geschrieben, ob das, was ich oben geschrieben habe, funktioniert hat.
Die ganzen eckigen Klammern kannst Du hier auch weglassen, außer bei "Strasse, Nummer", was ein Feldname ist, den es so nicht geben sollte, Leerzeichen, Sonderzeichen und Umlaute gehören nicht in Objektnamen - dann spart man sich auch die eckigen Klammern und sonstige Kopfschmerzen.

In so eine Prozedur gehört natürlich auch eine Fehlerbehandlung mit "On Error Goto..." usw., da hier eben immer was schiefgehen kann, und sei es nur, daß Word nicht geladen werden konnte.

Am Ende sollte man ebenfalls bedenken, immer die richtige Reihenfolge einzuhalten, hier macht es nichts, weil Du Word ja offen hältst. Aber prinzipiell gilt: Erst die Dokumentvariable schließen/auf Nothing setzen, dann erst die Anwendungsvariable. Ansonsten kann es passieren, daß entweder Word im Hintergrund "klebenbleibt" oder Du Access nicht beenden kannst. Gilt natürlich für alle Arten der Automation, also auch Excel/Powerpoint usw.

Da der Stop auch gleich bei der ersten Zeile passiert, könnte es ebenso sein, daß Word die Vorlage nicht geladen hat. Da bereits vorher "Visible=True" gesetzt wurde, kannst Du das zum Zeitpunkt der Unterbrechung in Word schon mal prüfen.

Vor die Fehlerzeile kannst Du schreiben:
Code: Alles auswählen
Debug.Print [Forms]![Navigationsformular].Name
Debug.Print [Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname]
Debug.Print IsNull([Forms]![Navigationsformular]![Navigationsunterformular].[Form]![Firmenname])

Entweder es gibt einen Fehler oder die Information wird im Direkfenster angezeigt.

Wenn es keinen Fehler gibt, ist das Problem bei der Zuweisung an den Bookmark in Word. Wenn es hier schon einen Fehler gibt, dann stimmt mit dem Navigationsformular etwas nicht.

Die Pfadangabe "xxx" im Dateipfad sollte außerdem einen kompletten Pfad darstellen, keinen relativen. Auf den Pfad muß der betreffende Terminal Server User natürlich mindestens Leserechte haben.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Methode item für das objekt forms ist fehlgeschlagen

Beitragvon Alada » 06. Mai 2021, 12:09

Hallo Bitsqueezer,

danke schon mal für Deine Hilfe.
Im Direktfenster hatte ich tatsächlich genau die gleiche Fehlermeldung. ES liegt also nicht an der Bookmark-Zuweisung.
Mit Deiner Idee zu Debug.Print --> Hier hält er an dieser 1. Stelle direkt an:
Debug.Print [Forms]![Navigationsformular].Name --> gleiche Fehlermeldung wie bisher...

Ansonsten habe ich die Variablen deklariert und Word wird definitiv geöffnet - und auch das richtige Formular.
Alada
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 14
Registriert: 26. Feb 2021, 12:03

Nächste

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste