🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #137169

Re: Access 2010 łączenie kilku kryteriów do kwerendy

#137169
From: leku
Date: Mon, 02 May 2016 08:09
65 lines
3225 bytes
bo DLookup zwraca Ci Null

wstaw ten kod tutaj i przetestuj:

   If IsNull(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" &
strId_kryt & "'")) Then
         MsgBox "Brak kryterium = " & strId_kryt
     Exit Sub
   End If

----------------------------------

Poprawiłem i działa. Dziękuję za pomoc :)
Jako kryterium pierwszego DLookUp zagnieździłem drugi DLookUp bedący źródłem 
pola Kryt3
na formularzu. Nie wiem dlaczego jawne odwołanie się do pola Kryt3 zwraca 
Null.
Konieczne było jednak formatowanie zwracanego z pierwszego DLookUp kryterium
do kwerendy wg sposobu zaproponowanego przez Macieja.
Jego pierwotny zapis w tabeli Kryteria_3 jest taki
A1 ; B1 ; C1
a zrozumiały dla Accessa jest taki
"A1";"B1";"C1"

Pewnie takie skakanie pomiędzy DLookUp'ami nie jest za bardzo wydajne
ale nie zauważyłem jak na razie negatywnych skutków w mojej bazie.

Private Sub Polecenie37_Click()
   Call Filtruj(Kryt3)
End Sub
'---------------------------------------------------------
Private Sub Filtruj(strId_kryt As String)
Dim qryTmp As DAO.QueryDef
Dim sWhere  As String

sWhere = DLookup("kryt_pow2", "Kryteria_3", "[GU] ='" & DLookup("[Grupa]", 
"Par1") & "'")

If IsNull(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" & 
DLookup("[Grupa]", "Par1") & "'")) Then
         MsgBox "Brak kryterium = " & DLookup("[Grupa]", "Par1")
     Exit Sub
End If


sWhere = String$(1, 34) & Replace(Trim([sWhere]), Chr(59), String$(1, 34) & 
Chr(44) & String$(1, 34)) & String$(1, 34)
sWhere = Replace(sWhere, Chr(32) & Chr(34), Chr(34))
sWhere = Replace(sWhere, Chr(34) & Chr(32), Chr(34))
  'Usuń tymczasową kwerendę
   On Error Resume Next
     DoCmd.DeleteObject acQuery, "qTemp"
   If Err.Number <> 0 Then Err.Clear
   On Error GoTo 0

   Set qryTmp = CurrentDb.CreateQueryDef("qTemp", _
       "SELECT Imp_temp.* FROM Imp_temp WHERE F14 IN (" & sWhere & ")")

   DoCmd.OpenQuery qryTmp.Name, acViewNormal

End Sub

pozdrawiam
leku
Technical Details
Message-ID: <57270b34$0$684$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <571b871d$0$641$65785112@news.neostrada.pl> <ng4rbg$b0d$1@node1.news.atman.pl> <57263093$0$22828$65785112@news.neostrada.pl> <ng5idu$n8v$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "leku" <lekucz@wp.pl>
Newsgroups: pl.comp.bazy-danych.msaccess
References: <571b871d$0$641$65785112@news.neostrada.pl> <ng4rbg$b0d$1@node1.news.atman.pl> <57263093$0$22828$65785112@news.neostrada.pl> <ng5idu$n8v$1@node2.news.atman.pl>
In-Reply-To: <ng5idu$n8v$1@node2.news.atman.pl>
Subject: Re: Access 2010 łączenie kilku
 kryteriów do kwerendy
Date: Mon, 2 May 2016 10:09:37 +0200
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Lines: 66
Message-ID: <57270b34$0$684$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 79.186.113.140
X-Trace: 1462176564 unt-rea-a-01.news.neostrada.pl 684 79.186.113.140:51240
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit