Toon posts:

keuzelijsten koppelen

Pagina: 1
Acties:
  • 980 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Goedemiddag,

Ik ben bezig met een database te maken waaruit ik eenvoudig gewichten en oppervlaktes kan berekenen van profielen welke ik moet gebruiken in een techische tekening.

Dit wil ik doen d.m.v. verschillende keuzelijsten, de tabellen met gegevens heb ik al gemaakt. De eerste keuzelijst is ook eenvoudig, maar de tweede keuzelijst krijg ik zo snel niet voor elkaar. Deze moet namelijk gekoppeld worden aan de eerste keuzelijst. De bedoeling is dat er eerste gekozen wordt voor het soort materiaal (staal, rvs, alu etc) hierna moet in de tweede keuzelijst de beschikbare profielen gekozen worden (kokers, buizen, strippen , platen etc). In de derde keuzelijst moet daarna de afmetingen van de het profiel gekozen worden( 40x40x2 bijvoorbeeld). Dus de tweede keuzelijst moet afhandelijk zijn van de eerste, en de derde keuzelijst moet afhankelijk zijn van de eerste en de tweede.

Ik heb acces 2003
alvast bedankt!

Verwijderd

Topicstarter
De tweede keuzelijst heb ik gekoppeld aan de eerste, dit werkt goed. Ik heb dit gedaan d.m.v. de volgende code:

Tmateriaalomschrijving is de tabel met de keuze uit de verschillende materiaalsoorten. Het bevat de volgende velden:
-materiaal_code
-materiaalomschrijving

Tprofielomschrijving is de tabel met al de omschrijving van de profielen. Het bevat de volgende velden:
-Profiel_code
-materiaal_code
-profielomschrijving

In de eerste combobox (cbomateriaalsoort) heb ik de code geplaatst als gebeurtenis "na bijwerken", de tweede combobox (cboprofiel) geeft de profielen aan van de juiste materiaalsoort.

Private Sub cbomateriaalsoort_AfterUpdate()
Dim sMateriaalsoort As String

sMateriaalsoort = "SELECT [Tprofielomschrijving].[Profiel_code], [Tprofielomschrijving].
[materiaal_code], [Tprofielomschrijving].[profielomschrijving] " & _
"FROM Tprofielomschrijving " & _
"WHERE [materiaal_code] = " & Me.cboMateriaalsoort.Value
Me.cboprofiel.RowSource = sMateriaalsoort
Me.cboprofiel.Requery
End Sub

Nu wilde ik mijn derde combobox koppelen aan mijn tweede combobox.In de derde combobox moeten keuze (verschillden afmetingen) komen te staan van het gekozen profiel. Hiervoor heb ik mijn derde tabel nodig, Tmateriaalgegevens. Deze bevat de volgende velden:
-materiaal_id (veld dat opgeslagen moet worden)
-Profiel_ code (het te koppelen veld)
-materiaal_soort code (n.v.t)
-materiaal_afmetingen (n.v.t)
-materiaal_gewicht (n.v.t)
-materiaal_oppervlak (n.v.t)
-Materiaal_lengte (n.v.t)
-materiaal_breedte (n.v.t)
-materiaal_hoogte (n.v.t)
-materiaal_dikte (n.v.t)

Mijn derde combobox heet cboprofielafmetingen.

Ik heb hiervoor een gelijke code gebruikt, zie onderstaand:

Private Sub cboProfiel_AfterUpdate()
Dim sProfiel As String

sProfiel = "SELECT [Tmateriaalgegevens].[materiaal_id], [Tmateriaalgegevens].[materiaal_soort code], [Tmateriaalgegevens].[materiaal_afmetingen], [Tmateriaalgegevens].[Profiel_code] " & _
"FROM Tmateriaalgegevens " & _
"WHERE [Profiel_code] = " & Me.cboProfielafmetingen.Value
Me.cboProfielafmetingen.RowSource = sProfiel
Me.cboProfielafmetingen.Requery
End Sub

Ik krijg de volgende foutmelding: Syntaxisfout(operator ontbreekt) in query expressie [Profiel_code]. Ik ben al een tijdje bezig maar kom er niet achter wat het is. Waarschijnlijk is het iets simpels maar zie ik het over het hoofd. Ik hoop dat iemand mij hiermee kan helpen.

alvast bedankt,

Erik


Deze wil ik aan Tprofielomschrijving koppelen d.m.v. "profielcode".

Verwijderd

Topicstarter
1 foutje heb ik gevonden:

WHERE [Profiel_code] = " & Me.cboProfielafmetingen.Value

moet zijn

WHERE [Profiel_code] = " & Me.cboprofiel.Value

De syntaxisfout is weg, ik moet nu alleen na tweede keuze (tweede combobox) een paramter waarde opgeven(?)

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zet eens Option Explicit bovenin je code. Misschien vraagt hij om een parameter omdat ergens een variabele niet bestaat/verkeerd gespeld is. Sowieso moet je de variabele controleren waar je parameter voor wordt gebruikt.

{signature}


Verwijderd

Topicstarter
Option Explicit staat al bovenin de code. De parameter waarde geeft hij toch meestal wanneer iets niet goed gekoppeld is?