Ga naar inhoud
  • 0

Zoekopdracht uitvoeren in gerelateerde tabel


LcGrs

Vraag

Ik ben beheerssysteem voor slaapplaatsen in elkaar aan het knutselen en zit momenteel toch een klein beetje vast.

 

Even de situatie:

Elke slaapplaats heeft een of meerdere sites (een-op-veel relatie tussen slaapplaatsen en sites)

Elke slaapplaats heeft een aantal contactpersonen (een-op-veel relatie tussen slaapplaatsen en contactpersonen). Een contactpersoon kan verantwoordelijk zijn voor een site (een-op-een relatie tussen contactpersonen en sites)

 

Het formulier Slaapplaatsen bevat een portal met gerelateerde contactpersonen. Naast elke contactpersoon heb ik een knopje "Wissen" geplaatst, dat knoptje start een script "Wis contactpersoon".

In dat script wil ik eerst nagaan of een contactpersoon in de tabel sites vermeld staat als verantwoordelijk voor een site (in dat geval mag die contactpersoon niet gewist worden). En daar raakt FM helemaal de pedalen kwijt (gezien het prijskaartje dat aan FM hangt lijkt me dit vrij onwaarschijnlijk, wellicht ben ik het dus die de pedalen kwijt raakt? :roll: )

 

Wat is er mis met dit:

#We gaan na of deze contactpersoon aangeven werd als verantwoordelijke voor een site slaapplaats
Variabele instellen [ $zoek_contactpersoon; Waarde:Contactpersonen slaapplaatsen::ID ]
Zoekopdracht uitvoeren [ Opgegeven zoekopdrachten: Records zoeken; Criteria: Sites slaapplaatsen::Verantwoordelijke: “$zoek_contactpersoon” ] [ Herstellen ]
If [ Get(LaatsteFout) = 0 ]
#Indien contactpersoon slaapplaats gevonden werd als verantwoordelijke voor een site mag deze contactpersoon niet gewist worden.
De gebruiker krijgt een foutmelding en het script wordt gestopt.
Zoekopdracht uitvoeren [ Opgegeven zoekopdrachten: Records zoeken; Criteria: Contactpersonen slaapplaatsen::ID: “$zoek_contactpersoon” ] [ Herstellen ]
Alle records tonen
Aangepast dialoogvenster tonen [ Titel: "Contactpersoon slaapplaats wissen"; Bericht: Contactpersonen slaapplaatsen::Volledige naam & " is verantwoordelijk voor site " & Sites
slaapplaatsen::Benaming & " en kan dus niet gewist worden."; Standaardknop: “Annuleren”, Vastleggen: “Ja” ] Script afsluiten [ ]
End If

 

Het veld $zoek_contactpersoon bevat de ID van de contactpersoon en die komt voor in de tabel contactpersonen (ik heb net geklikt op een knop in de portal, naast de naam van de contactpersoon). Alles werkt tot aan de zoekopdracht. Daar levert FM mij een foutmelding 401???

 

Kan iemand me verder helpen?

 

Bedankt!

Link naar reactie

2 antwoorden op deze vraag

Aanbevolen berichten

  • 0

hij zoek op letterlijk "$zoek_contactpersoon" ipv de waarde van de variabele. Je moet de quotes verwijderen.

 

Ik prefereer trouwens de volgende manier:

 

Enter Find Mode
Set Field [ Sites splaapplaatsen::Verantwoordelijke ; $zoek_contactpersoon ]
Perform Find

 

Is wel 3 lijnen code ipv 1, maar verhoogt de leesbaarheid :)

 

Andries

Link naar reactie
  • 0
hij zoek op letterlijk "$zoek_contactpersoon" ipv de waarde van de variabele. Je moet de quotes verwijderen.

 

Ik heb die quotes daar niet gezet. FM zet die quotes rond de zoekcriteria. In het scherm 'Zoekopdracht bewerken' staat als veld 'Sites slaapplaatsen::Verantwoordelijk' en als criteria '$zoek_contactpersoon', maar telkens zonder quotes.

 

Ik prefereer trouwens de volgende manier:

 

Enter Find Mode
Set Field [ Sites splaapplaatsen::Verantwoordelijke ; $zoek_contactpersoon ]
Perform Find

 

Is wel 3 lijnen code ipv 1, maar verhoogt de leesbaarheid :)

 

Andries

 

Daar ga ik later nog even naar kijken. Een probleem: het formulier dat open staat is het formulier voor de tabel 'Slaapplaatsen', terwijl mijn zoekopdracht bestemd is voor de tabel 'Sites'. In jouw voorbeeld moet ik eerst naar het formulier 'Sites' gaan - en dat is nu net niet de bedoeling. :)

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...