4 Stimmen

Mehrere Elemente im Zugriff mit Dlookup zurückgeben

Die DealID wird über eine Combobox festgelegt, und es müssen bis zu 3 MIDs im Feld darunter angezeigt werden.

Private Sub DealID_AfterUpdate()
Dim strFilter As String
strFilter = "DealID = " & Me!DealID
Me!MID = DLookup("MID", "DealContent", strFilter)
Exit_ProductID_AfterUpdate:
Exit Sub
End Sub

Das ist der Code, den ich verwende die offensichtliche Einschränkung ist Dlookup gibt nur das erste Ergebnis es findet. Das schafft 2 Probleme, aber Ill konzentrieren sich auf das erste, es wird nicht angezeigt, mehr als ein MID

Wie kann ich also die 1-3 MIDs anzeigen lassen?

Das zweite Problem, das ich habe, ist tiefgreifender, aber wenn jemand helfen möchte, wäre ein persönliches Gespräch sehr willkommen. Grundsätzlich ist das obige Formular ein untergeordnetes Formular und ich brauche es, um einen separaten Eintrag in der Formulartabelle für jede Mount-ID zu speichern.

Wenn jemand helfen möchte, aber nicht versteht (was bei meinen Beiträgen oft der Fall ist), ist die Bildschirmfreigabe über Skype die beste Lösung.

6voto

Christian Specht Punkte 34680

Wie bereits in einem Kommentar erwähnt, können Sie nicht mit DLookup um mehr als einen Wert zurückzugeben.

Sie müssen die ersten drei auswählen MID s in eine Recordset in einer Schleife durch und fügen sie an Me!MID :

Dim RS As DAO.Recordset
Dim SQL As String

'ordering is only important if you want the FIRST three MIDs.
'If you don't care, just omit the "order by MID" part.
SQL = "select top 3 MID from DealContent where DealID = xxx order by MID"

Set RS = CurrentDb.OpenRecordset(SQL)
Do While Not RS.EOF
    Me!MID = Me!MID & RS("mid") & " "
    RS.MoveNext
Loop
RS.Close
Set RS = Nothing

Beachten Sie, dass in diesem Beispiel DAO verwendet wird, die standardmäßige (und von MS empfohlene) Datenzugriffstechnologie in neueren Access-Versionen. Ältere Versionen verwenden standardmäßig ADO.
DAO funktioniert auch dort, man braucht nur einen Verweis auf Microsoft DAO x.x Object Library .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X