MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 10.05.2004, 10:01   #1
annivw
MOF User
MOF User
Standard DBEngine - too few parameter. expected 1

Hallo geliebtes Forum,


in diesem Codeteil ...

Function Hole_Kundendaten(strAnschriftstraße, strAnschriftPLZ, strAnschriftOrt, strAnschriftLand, strAnschriftKunde, _
strAnschriftAbteilung, strAnschriftAnsprechpartner, strAnrede, strAnschriftAdresszusatz)
Dim n As String
n = Forms("frm_Rechnung_erstellen").Controls("txtfirmenid").Column(0)
n = Me!txtFirmenid.Column(0)
'und hier kommt der fehler
n = DBEngine(0)(0).OpenRecordset("SELECT * FROM tab_kontakte where [Rechnungsid] =" & n, dbOpenForwardOnly)(0)
...
erhalte ich immer folgende Fehlermeldung
too few parameter. expected 1

in einem anderen Codesegment funktioniert diese Zeile jedoch vorzüglich?!"

hat irgendjemand eine Idee?

__________________

btw: Feedback ist für alle wichtig!
Benutze:
Office 2003 und Win XP
annivw ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:03   #2
J_Eilers
MOF Guru
MOF Guru
Standard

Hi,

wo steht dieser Code und wie wird die Funktion aufgerufen?

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:11   #3
annivw
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hi,

sorry, hab ich vergessen...
also der Code steht im Form_FRM_Rechnung_erstellen

und wird im Code wie folgt aufgerufen:

Public Sub textmarken_auslesen()
....
dim i As String
i = Hole_Kundendaten(strAnschriftstraße, strAnschriftPLZ, strAnschriftOrt, strAnschriftLand, strAnschriftKunde, _
strAnschriftAbteilung, strAnschriftAnsprechpartner, strAnrede, strAnschriftAdresszusatz)

__________________

btw: Feedback ist für alle wichtig!
Benutze:
Office 2003 und Win XP
annivw ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:16   #4
J_Eilers
MOF Guru
MOF Guru
Standard

Also im Klassenmodul? Dann versuche es mal folgendermaßen mit der Funktion:

Code:

Function Hole_Kundendaten(strAnschriftstraße, strAnschriftPLZ, strAnschriftOrt, strAnschriftLand, strAnschriftKunde, _
strAnschriftAbteilung, strAnschriftAnsprechpartner, strAnrede, strAnschriftAdresszusatz) As Variant
Hole_Kundendaten = DBEngine(0)(0).OpenRecordset("SELECT * FROM tab_kontakte where [Rechnungsid] = " & _
                                                Me!txtFirmenID.Column(0), dbOpenForwardOnly)(0)
End Function
Warum du die ganzen Strings übergibst muss ich aber nicht verstehen...

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:28   #5
annivw
Threadstarter Threadstarter
MOF User
MOF User
Standard

hi,

...
hab ich so kopiert wie du die Funktion geschrieben hast - leider erscheint der gleiche Fehler

wenn du mir sagtst, wie ich die Strings sinnvoller auslesen und an Textmarken übergeben kann -sag mir bitte Bescheid - lerne gern dazu...


Im Moment befülle ich die Textmarken in Word nämlich so:
'für die Felder die im aktuellen Formular sind so:
With .Selection
'Anschriftenblock
.Goto What:=wdGoToBookmark, Name:="Rechnungnr_präfix"
.TypeText IIf(Not IsNull(Me.txtRechnungspräfix), Me.txtRechnungspräfix, "")
...
'usw. und für die Felder, die nicht im aktuellen Formular gelistet werden wollte ich sei wie oben bereits beschrieben aus den entsprechende Tabellen auslesen und an Word wie folgt übergeben:

i = Hole_Kundendaten(strAnschriftstraße, strAnschriftPLZ, strAnschriftOrt, strAnschriftLand, strAnschriftKunde, _
strAnschriftAbteilung, strAnschriftAnsprechpartner, strAnrede, strAnschriftAdresszusatz)

...
.TypeText IIf(Not IsNull(strAnschrift_Straße), strAnschrift_Straße, "")
.Goto What:=wdGoToBookmark, Name:="anschrift_PLZ"

__________________

btw: Feedback ist für alle wichtig!
Benutze:
Office 2003 und Win XP
annivw ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:33   #6
J_Eilers
MOF Guru
MOF Guru
Standard

Kenne mich mit der Übergabe an Word leider nicht aus, aber sinnvoller wäre es wohl einen Recordset zu öffnen und von dort die Daten zu übergeben. ungefähr so:

Code:

Dim rs As DAO.Recordset
Dim strSQL As String
Dim i As Integer

strSQL = "SELECT * FROM Tabelle WHERE ID = " & Me!ID
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

While Not rs.EOF
  For i = 0 To rs.Fields.Count 
    WordFeld(i) = rs.Fields(i)
  Next i
Wend

rs.Close

Set rs = Nothing
Ungetestet und von dir anzupassen!

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 10:36   #7
annivw
Threadstarter Threadstarter
MOF User
MOF User
Standard

danke,
ich probiers das jetzt mal aus.
-melde mich dann nochmal...

ich habe die andere methode gewählt, weil ich dachte dass das schneller geht?!
außerdem (grübel, warum das bloß sein kann...) funktioniert der Code ja an anderer Stelle auch...

bis gleich mal


Mhhhm hab ich grad mal per Drag 'n Drop in meinen Code gepostet...
mit was ist denn
WORDFELD (i) ... zu ersetzten im der englischen Office 2K version?

__________________

btw: Feedback ist für alle wichtig!
Benutze:
Office 2003 und Win XP

Geändert von annivw (10.05.2004 um 10:39 Uhr).
annivw ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 11:35   #8
J_Eilers
MOF Guru
MOF Guru
Standard

Durch den Ausdruck, mit dem du das Feld in Word befüllen kannst.

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 12:04   #9
annivw
Threadstarter Threadstarter
MOF User
MOF User
Standard

hi,
danke für die Mühe,

da ich jedoch auch mit dem Codesnipe von dir eine ähnliche Fehlermeldung erhalten habe, habe ich nun folgende lösung favorisiert:


n = Forms("frm_Rechnung_erstellen").Controls("txtfirmenid").Column(0)
strAnschrift_Straße = DLookup("[straße]", "[tab_kontakte]", "[kundenid] =" & n)


damit, kann ich die Daten (hinterher) problemlos nach Word übertragen

__________________

btw: Feedback ist für alle wichtig!
Benutze:
Office 2003 und Win XP
annivw ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 12:09   #10
Arne Dieckmann
MOF Guru
MOF Guru
Standard

Du verwendest übrigens ein ganz anderes Feld im Kriterienteil der Dlookup-Funktion ("Kundenid" im Gegensatz zum Feld "Rechnungsid"). Stimmte denn der Feldname im ursprünglichen Code?

__________________

Gru&szlig;, Arne<br><br><u>Links</u>: <a *****"http://www.donkarl.com/FAQ/FAQStart.htm">FAQ</a> • <a *****"http://www.ardiman.de/datenbanken/grundlagen.html">Grundlagen</a> • <a *****"http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/index.htm">Relationale Datenbanken</a> • <a *****"http://www.lebans.com/">Stephen Lebans</a> • <a *****"https://dbwiki.net">DBWiki</a> <br><u>Tools</u>: <a *****"http://www.ardiman.de/datenbanken/tabtoweb.html">TabToWeb</a> • <a *****"http://www.sqlinform.com/">SQL-Formatter</a> • <a *****"/forum/vbseiten.php?page=7">Code Converter</a> • <a *****"https://regex101.com/">RegEx testen</a><br><u>System</u>: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, <a *****"http://www.firefox-browser.de/">Firefox</a><br><span style="color:#B22222">Bitte keine Fragen per Mail/PN</span> und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 12:10   #11
J_Eilers
MOF Guru
MOF Guru
Standard

Erstelle ein Modul und kopiere folgenden Code:

Code:

Public Function fLookUp(Feld As String, Tabelle As String, Optional Krit As String) As Variant
Dim strSQL As String

strSQL = "SELECT " & Feld & " FROM " & Tabelle
If Not IsMissing(Krit) Then
  strSQL = strSQL & " WHERE " & Krit
End If

fLookUp = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenForwardonly)(0)
End Function
Unter einem anderen Name speichern als fLookUp!!!

Code:

n = Forms("frm_Rechnung_erstellen").Controls("txtfirmenid").Column(0)
strAnschrift_Straße = fLookup("straße", "tab_kontakte", "kundenid =" & n)

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.