13. oktober 2003 - 10:44Der er
20 kommentarer og 2 løsninger
forespøgesel som domain string
hej..
jeg har en forspørgsel som domain string. Det virker perfekt. Jeg vil gerne slette forspørgslen og så skrive den i hændelsen for at bevare overblikket men hvordan. forspørgslen ser sådan nu. Den hedder dobET
SELECT TBL_FF.FF_KredsløbNr FROM (TBL_KUNDER INNER JOIN TBL_Installationer ON TBL_KUNDER.ID = TBL_Installationer.Kunde_ID) INNER JOIN TBL_FF ON TBL_Installationer.InstallationID = TBL_FF.ID_FF WHERE (((TBL_KUNDER.ID)=[Formularer]![frmKundeOprettelse]![ID]));
Det her virker: Private Sub txtET_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("[ET]", dobET, "[ET]=txtET")) Then
Tni->Jeg er ret sikker på, at du er nødt til at benytte en forespørgsel som domæne. Alternativt skal du selv lave din DLookup vha recordsets:
Dim rs as ADODB.Recordset Dim cn AS ADODB.Connection DIM SQLStr as string Set cn = Currentproject.Connection Set rs = New ADODB.Recordset SQLStr = "SELECT TBL_FF.FF_KredsløbNr FROM (TBL_KUNDER INNER JOIN TBL_Installationer ON TBL_KUNDER.ID = TBL_Installationer.Kunde_ID) INNER JOIN TBL_FF ON TBL_Installationer.InstallationID = TBL_FF.ID_FF WHERE (((TBL_KUNDER.ID)=[Formularer]![frmKundeOprettelse]![ID]));" rs.Open "SQLStr", cn rs.Find "ET = '" & txtET & "'" if rs.EOF then ... endif
Når jeg skifter navnet ud med "SQLet" (som jeg kalder den) siger den at den ikke kan finde forsspørslen.
Fejlen ligger i sql sætningen...men hvad? SQLET = SELECT TBL_DL.ET FROM (TBL_KUNDER INNER JOIN TBL_Installationer ON TBL_KUNDER.ID = TBL_Installationer.Kunde_ID) INNER JOIN TBL_DL ON TBL_Installationer.InstallationID = TBL_DL.Inst_ID WHERE (((TBL_KUNDER.ID)=[Forms]![frmKundeOprettelse]![ID]));
Opgaven går ud på at se om denne kunde har en ET men samme nummer inden man får lov til at skrive det nummer i feltet "txtET" tabellen kan have det samme nummer flere gange men kun een gang pr kunde.
Du laver en forespørgsel, som vi kalder "qryET" herefter kan din kode se således ud:
Dim SQLStr As string SQLStr = "SELECT TBL_FF.FF_KredsløbNr FROM (TBL_KUNDER INNER JOIN TBL_Installationer ON TBL_KUNDER.ID = TBL_Installationer.Kunde_ID) INNER JOIN TBL_FF ON TBL_Installationer.InstallationID = TBL_FF.ID_FF WHERE TBL_KUNDER.ID=" & Me![ID]
Currentdb.Querydefs("qryET").SQL = SQLStr If Not IsNull(DLookup("[ET]", "qryET", "[ET]= '" & Me!txtET & "'")) Then
Ingen point???? Vi har dog svaret på dit spørgsmål!! Og er kommet med flere løsninger som er brugbare....bare fordi at du vælger ikke at bruge dem, så har du dog fået hjælp til at indse at din egen løsning var den bedste!!
Ret skal være ret og der skal heller ikke være noget her. Man skulle jo gerne kunne nødes igen.
Det var fordi jeg selv kom på listen da min tap var ligt hurtig som svar
tni
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.