gerelateerde databases

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.680
Ik richt mij vooral tot Octafisch... die zal wel weten waar ik het over heb

Bovenaan de zoekform die ik nu gebruik staat:

Option Compare Database
Option Explicit
Const strSQL As String = "SELECT kode, Naam, Straat, Plaats, geboorte, PN, NR, Bond, [Naam] " _
& """|"" & [Straat] & ""|"" & [Plaats] & ""|"" & [Geboortedatum] AS txtSearch FROM Fiche "
Const strList As String = "SELECT kode, NAAM, Straat, Plaats, geboorte, PN, NR, Bond FROM fiche WHERE Naam <>"""""

Nu wil ik de tabel Fiche koppelen met een andere tabel

Hoe pas ik jouw code aan in die zin?

het te koppelen veld zal binnen fiche: BOND zijn en dat is gekoppeld aan de tabel Mutual: Naam

bedankt

JP
 
Private Sub LstClient_Click()
With Me.LstVoorschriften
.RowSource = "Select Voorschr.identif, VOORSCHR.DATVOOR, VOORSCHR.DOKTER, VOORSCHR.DIAGN, VOORSCHR.REEKS, VOORSCHR.OVER, VOORSCHR.soort_pathologie FROM VOORSCHR WHERE VOORSCHR.KODE = '" & Me.LstClient.Value & "' ORDER BY Voorschr.identif DESC;"
.Requery
End With
End Sub
 
Dan snap ik dit niet:
het te koppelen veld zal binnen fiche: BOND zijn en dat is gekoppeld aan de tabel Mutual: Naam
Want in je laatste query zit noch de tabel Fiche, noch de tabel Mutual. Al kun je wel koppelen op Fiche, want dat doe je nu ook.
 
Oeps, ben wat fout geweest
Dit is de rijbron van de eerste keuzelijst

Knipsel.JPG

Ik voegde er de velden van de tabel: mutual bij, maar die worden in d elistbox niet getoond omdat (denk ik) in de eerste lijnen van de code, niets over deze velden vermeld werd.. denk ik

Option Compare Database
Option Explicit
Const strSQL As String = "SELECT kode, Naam, Straat, Plaats, geboorte, PN, NR, Bond, [Naam] " _
& """|"" & [Straat] & ""|"" & [Plaats] & ""|"" & [Geboortedatum] AS txtSearch FROM Fiche "
Const strList As String = "SELECT kode, NAAM, Straat, Plaats, geboorte, PN, NR, Bond FROM fiche WHERE Naam <>"""""

Dus, hoe los ik dit op?

JP
 
Kun je de SQL van de keuzelijst posten, aan het plaatje heb ik niet zoveel. En daarnaast heb ik de code nodig waarin de string strList aan de keuzelijst wordt gekoppeld.
 
Ik hoop dat het dit is wat je vraagt

Code:
Option Compare Database
Option Explicit
Const strSQL As String = "SELECT kode, Naam, Straat, Plaats, geboorte, PN, NR, Bond, [Naam] " _
    & """|"" & [Straat] & ""|"" & [Plaats] & ""|"" & [Geboortedatum] AS txtSearch FROM Fiche "
Const strList As String = "SELECT kode, NAAM, Straat, Plaats, geboorte, PN, NR, Bond FROM fiche WHERE Naam <>"""""

Private Sub Form_Load()
    Dim strSQL As String
    With Me.LstClient
        .RowSource = strList & " ORDER BY Naam"
    End With
End Sub
 
Dat is inderdaad de vraag :). En daar wil je het vel [Naam] bij hebben uit de tabel [Mutual]?
 
Nee, daar wil ik het adres vanuit mutual uit krijgen
 
Ik zal je vertellen hoe ik dit doorgaans aanpak, want de werkwijze is altijd hetzelfde. Ik maak in het Query venster de query zoals die er uit moet zien, met eventueel als filter wat losse waarden. In ieder geval filteren op de velden die in het formulier ook gefilterd worden. Vervolgens kopieer je de SQL van die query. De query zelf kun je weggooien.
In het VBA venster plak je dan op een lege plek (ergens waar de code moet komen natuurlijk) de SQL. Die zal ongetwijfeld rood worden, omdat de syntax niet klopt. Maar dat geeft op dat moment niet.
Je hebt nu de code zoals hij in essentie werkt, maar die code moet dus worden aangepast. Op basis van de bestaande code kun je nu simpel de nieuwe code aanpassen, te beginnen door er Const strList As String = " voor te zetten. Er komt dus een veldje bij, en een Join stuk.
Andersom kan ook: in de bestaande code de nieuwe stukken erbij plakken. Maakt allemaal niet zoveel uit.
 
Ik schrijf:

Code:
Option Compare Database
Option Explicit
Const strSQL As String = "SELECT kode, Naam, Straat, Plaats, geboorte, PN, NR, Bond, [Naam] " _
    & """|"" & [Straat] & ""|"" & [Plaats] & ""|"" & [Geboortedatum] AS txtSearch FROM Fiche "
Const strList As String = "SELECT Fiche.KODE, Fiche.NAAM, Fiche.STRAAT, Fiche.PLAATS, Fiche.GEBOORTE, Fiche.PN, Fiche.NR, Fiche.BOND, MUTUAL.STRAAT FROM Fiche INNER JOIN MUTUAL ON Fiche.BOND = MUTUAL.NAAM WHERE Fiche.Naam <>"""""


Private Sub Form_Load()
    Dim strSQL As String
    With Me.LstClient
        .RowSource = strList & " ORDER BY Naam"
    End With
End Sub

Private Sub LstClient_Click()
    With Me.LstVoorschriften
        .RowSource = "Select Voorschr.identif, VOORSCHR.DATVOOR, VOORSCHR.DOKTER, VOORSCHR.DIAGN, VOORSCHR.REEKS, VOORSCHR.OVER, VOORSCHR.soort_pathologie, MUTUAL.STRAAT, MUTUAL.PLAATS, MUTUAL.POSTNUMMER FROM VOORSCHR INNER JOIN Fiche ON VOORSCHR.KODE = Fiche.KODE INNER JOIN MUTUAL ON Fiche.BOND = MUTUAL.NAAM WHERE VOORSCHR.KODE = '" & Me.LstClient.Value & "' ORDER BY Voorschr.identif DESC;"
        .Requery
    End With
End Sub

de lijn met strSQL krijg ik niet geprogrammeerd wegens de vertikale streepjes
De strList geeft me een lege keuzelijst
de rowsource geeft in elk geval geen foutmelding dus die zou misschien eens juist kunnen zijn...

PFFF
 
Je strSQL bevat m.i. inderdaad een (herhaalde) fout.
Code:
[Straat] & "|" & [Plaats]
Dubbele (dubbele) quotes gebruik je alleen als je een waarde filtert, nooit als je velden samenvoegt. En je moet dan een dubbele quote plaatsen, omdat die quote een gereserveerd teken is (om strings aan te geven) en Access moet weten dat je eigenlijk het teken zelf wilt plaatsen, niet het markeringsteken. En dat doe je dus door een dubbele te typen.

In dit geval combineer je velden met een string (het pipe teken). En dan moet je de string wel tussen quotes zetten, maar enkele. StrList zal wel niet werken omdat het veld [Naam] in de twee tabellen bestaat. In dat geval moet je ook de tabelnaam erbij vermelden, anders weet Access niet welk veld je bedoelt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan