Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Mehrere Datensätze in einen Datensatz zusammenfassen

Begonnen von Anke_71, August 13, 2010, 11:40:15

⏪ vorheriges - nächstes ⏩

Torsten_

Hallo,

ich habe das Beispiel DeineTabelle genauso eingegeben und folgender
Fehler erscheint in der Abfrage (XP/Access2010):

Laufzeitfehler '3078':
Das Microsoft Access-Datenbankmodul findet die Eingabetabelle oder Abfrage
'DeineTabelle' nicht. Stellen Sie sicher, dass sie vorhanden ist und der Name
richtig eingegeben wurde.

Im Modul ist folgendes markiert:

Set rs = DBEngine(0)(0).OpenRecordset(strSQL)


Access 2010
Verweise auf:
Visual Basic for Applications
Microsoft Access 14.0 Object Library
OLE Automation
Microsoft Office 14.0 Access database engine Object Library

habe auch mal Verweis auf DA0 3.6 gesetzt (auf 14.0 rausgenommen),
Fehler erscheint trotzdem!

Gruss Torsten

DF6GL

Hallo,

naja..... ::) :o

Wenn die Fehlermeldung schon sagt, dass es "DeineTabelle" nicht gibt, dann setz halt dort einen Tabellennamen ein, der in Deiner DB auch vorhanden ist.... 

"DeineTabelle" ist doch nur ein BEISPIELNAME für die prinzipielle Lösung des Problems und muss jeweils immer an die eigene Situation angepasst werden

Torsten_

Hallo,

die Tabelle heist  "DeineTabelle", ich habe einfach nur eine Testdatenbank mit genau
den Daten, wie am Anfang als Beispiel angeben wurde, erstellt um Schreibfehler zu
vermeiden.
Wenn ich aber dann die Abfrage ausführe erscheint die bereits beschriebene
Fehlermeldung!?!

Gruss Torsten

DF6GL

Hallo,

dann lad doch mal diese Beispiel-DB hier hoch  (gezippt und komprimiert/repariert)

Torsten_

Hallo,

ich weiss nicht warum, aber nach dem letzten schliessen der Datenbank (Donnerstag)
funktionierte es nicht und als ich diese heute geöffnet hatte funktionierte es  :-[ direkt!

Ich habe nun die tatsächliche Tabelle eingefügt, dabei entsteht aber beim öffnen der Abfrage
"qyrZeichen" ein Fehler, bei jedem Datensatz (waSendungsnr) erscheint in der Ausgabe
der gleiche Inhalt. Kann es sein, dass in dem Modul modSZaZeichen beim SQL-String was
geändert werden muss (waSendungsnr hat den Felddatentyp "Text")?

Ich habe mal die Datenbank angefügt.

Danke bisher für die Hilfe  :)

Gruss Torsten

DF6GL

Hallo,

etwa so:


Public Function SZa(waSendungsnr As String) As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "select waZeichen from tblWare where waSendungsnr ='" & waSendungsnr & "'"

Set rs = DBEngine(0)(0).OpenRecordset(strSQL)

Do While rs.EOF = False
  SZa = SZa & ";  " & rs!waZeichen
  rs.MoveNext
Loop

SZa = Mid(SZa, 3, 100)
rs.Close
Set rs = Nothing
End Function

Torsten_

Hallo,

danke für die schnelle Antwort, wenn ich jetzt =' " & waSendungsnr & " ' "
eingebe, erscheint beim öffnen der Abfrage in Feld Ausgabe gar nichts!

Gruss Torsten


DF6GL

Hallo,

was gibst Du WO ein?

Warum benutzt Du zusätzliche Leerzeichen um die Hochkommata?



Torsten_

Hallo,

ich habe den Fehler jetzt gefunden,
habe
Public Function SZa(ID As Long) As String
statt
Public Function SZa(waSendungsnr As String) As String

geschrieben (hätte den Code vom Oktober 25, 2013, 22:10:23 besser direkt
kopiert statt nur einen Teil zu ändern).

Vielen Dank für die Hilfe :)

Gruss Torsten

Torsten_

Hallo,

ich habe doch noch eine Frage,

kann ich in dem nachfolgenden Code auch noch eine Gruppierung einfügen,

Ergebnis:

Beispiel für Feld waZeichen

ohne Gruppierung
Test1; Test1

mit Gruppierung
Test1


Public Function SZa(waSendungsnr As String) As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "select waZeichen from tblWare where waSendungsnr ='" & waSendungsnr & "'"

Set rs = DBEngine(0)(0).OpenRecordset(strSQL)

Do While rs.EOF = False
  SZa = SZa & ";  " & rs!waZeichen
  rs.MoveNext
Loop

SZa = Mid(SZa, 3, 100)
rs.Close
Set rs = Nothing
End Function


Im voraus besten Dank für eine Antwort

Gruss
Torsten

DF6GL

Hallo,



vielleicht:

strSQL = "select Distinct waZeichen from tblWare where waSendungsnr ='" & waSendungsnr & "'"

Torsten_

Hallo,

:D danke, war genau die richtige Hilfe.

Nachfolgend nochmals der gesamte Code zur Info:

Public Function SZa(waSendungsnr As String) As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String

strSQL = "select waZeichen from tblWare where waSendungsnr ='" & waSendungsnr & "'"

Set rs = DBEngine(0)(0).OpenRecordset(strSQL)

Do While rs.EOF = False
  SZa = SZa & ";  " & rs!waZeichen
  rs.MoveNext
Loop

SZa = Mid(SZa, 3, 100)
rs.Close
Set rs = Nothing
End Function



Schöne Grüße aus dem Westerwald
Torsten

Stefan Bauer

Hallo, bin ganz neu hier und habe auch nicht viel Ahnung mit Access. Ich habe aus dem hier beschriebenen Vorgang eine Abfrage gestrickt die auf meine Bedürfnisse passt. Das funzt auch, leider gibt er mir mit Excel nicht alle Daten aus. Ich habe die Felder schon auf Memo gestellt. Jetzt gibt er mir 100 bzw 4000 Zeichen aus. Es sollten doch aber 65000 sein oder? Liegt es am Groupby? Kann mir bitte jemand helfen?

Danke Stefan

DF6GL

Hallo,

willkommen im Forum..

was sollen wir aber mit der Beschreibung anfangen?  Alle unsere Glaskugeln zeigen gerade nur Nebel an.  ;)




PhilS

Zitat von: Stefan Bauer am Januar 20, 2020, 11:08:06
Jetzt gibt er mir 100 bzw 4000 Zeichen aus. Es sollten doch aber 65000 sein oder? Liegt es am Groupby?
Wahrscheinlich Ja. Wenn nach einem Memo-Feld gruppiert wird, wird dieses Feld gekürzt (meines Wissens auf 255 Zeichen), weil die Gruppierung eines vollständigen Memo-Feldes (bis 1GB Daten) erhebliche Performanceeinbußen bewirken würde.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor