Thread View: pl.comp.bazy-danych.msaccess
42 messages
42 total messages
Started by leku
Sat, 23 Apr 2016 14:30
Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 23 Apr 2016 14:30
Date: Sat, 23 Apr 2016 14:30
27 lines
1640 bytes
1640 bytes
Chcę przekazać listę kryteriów z tabeli pomocniczej
do kwerendy w postaci
In ("A1";"B1";"C1")
lub
"A1" Or "B1" Or "C1"
W tabeli pomocniczej Kryteria mam pola
Id_kryt - tekst
rodz_kryt - tekst
W polu rodz_kryt mam zestawy kryteriów
np
"A1";"B1";"C1"
"D1";"F1"
"T1";"R1";"P1"
Próbowałem z polem kryt na formularzu Form_kryt do którego dane pobierałem
skutecznie przez
DLookUp("[rodz_kryt]";"Kryteria";"[id_kryt] = 'kryt1'")
i następnie w kryterium odwoływałem się do pola formularza
[Forms]![Form_kryt]![kryt] ale to nie działa :(
Jak pobrać (połączyć) takie zestawy kryteriów do kwerendy ?
pozdrawiam
leku
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: Radosław Biernacki
Date: Mon, 25 Apr 2016 09:56
Date: Mon, 25 Apr 2016 09:56
26 lines
2255 bytes
2255 bytes
W dniu sobota, 23 kwietnia 2016 16:30:54 UTC+2 użytkownik leku napisał:
> Chcę przekazać listę kryteriów z tabeli pomocniczej
> do kwerendy w postaci
> In ("A1";"B1";"C1")
> lub
> "A1" Or "B1" Or "C1"
>
> W tabeli pomocniczej Kryteria mam pola
> Id_kryt - tekst
> rodz_kryt - tekst
>
> W polu rodz_kryt mam zestawy kryteriów
> np
> "A1";"B1";"C1"
> "D1";"F1"
> "T1";"R1";"P1"
>
> Próbowałem z polem kryt na formularzu Form_kryt do którego dane pobierałem
> skutecznie przez
> DLookUp("[rodz_kryt]";"Kryteria";"[id_kryt] = 'kryt1'")
>
> i następnie w kryterium odwoływałem się do pola formularza
> [Forms]![Form_kryt]![kryt] ale to nie działa :(
>
> Jak pobrać (połączyć) takie zestawy kryteriów do kwerendy ?
Nie do końca kumam o co chodzi, ale chyba masz problem z cudzysłowem. Żeby użyć go w kryterium musisz odwołać się przez funkcję Chr(34).
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Mon, 25 Apr 2016 19:28
Date: Mon, 25 Apr 2016 19:28
16 lines
1837 bytes
1837 bytes
Nie do końca kumam o co chodzi, ale chyba masz problem z cudzysłowem. Żeby użyć go w kryterium musisz odwołać się przez funkcję Chr(34). ---------------------- Chcę przekazać do kwerendy więcej jak jedno kryterium rozdzielone operatorem Or Tyle i aż tyle :( Czyli dla przykładu chcę odfiltrować wszystkich Janków i Franków z pola Imię ale chcę to kryterium pobierać np z tabeli pomocniczej zapisane w formie Janek Or Franek ale nie wiem jak aby to Access zrozumiał. Tymczasowo sobie poradziłem tworząc kilka kwerend, każda z innym kryterium wyszukiwania zależnym od użytkownika bazy. Mało elegancko ale działa. pozdr
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Fri, 29 Apr 2016 07:39
Date: Fri, 29 Apr 2016 07:39
27 lines
2081 bytes
2081 bytes
Witam, nie wiem czy o to chodzi.
Napisałem poniżej prostą kwerendę która powinna wyeliminować odwoływanie się jawnie za każdym razem do wartości (u ciebie = "kryt1")
Może tak:
...
>
> Próbowałem z polem kryt na formularzu Form_kryt do którego dane pobierałem
> skutecznie przez
> DLookUp("[rodz_kryt]";"Kryteria";"[id_kryt] = 'kryt1'")
>
...
kwerenda:
"SELECT * FROM TabelaFormuklarza
WHERE ([id_kryt] IN (" & [Forms].[Form_kryt]![kryt] & "))"
założenia:
- Formularz oparty na tabeli "TabelaFormularza"
- "TabelaFormularza" zawiera pole [id_kryt], które wcześniej uzupełniłeś
za pomocą funkcji DLookUp
Oczywiście możesz dowolnie zmienić źródło danych tu "TabelaFormularza" na
cokolwiek innego np. inną tabelę czy kwerendę powinny one tylko mieć pole z uzupełnionym "[id_kryt]"
Pozdrawiam
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Fri, 29 Apr 2016 07:41
Date: Fri, 29 Apr 2016 07:41
4 lines
1652 bytes
1652 bytes
"SELECT * FROM TabelaFormularza
WHERE ([id_kryt] IN (" & [Forms].[Form_kryt]![kryt] & "))"
literówka ;)
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Fri, 29 Apr 2016 08:35
Date: Fri, 29 Apr 2016 08:35
7 lines
1477 bytes
1477 bytes
Czy o to chodziło?
"SELECT * FROM TabelaFormuklarza
WHERE ([pole_zaciagniete_kryteria] IN (" & [Forms].[Form_kryt]![kryt] & "))"
Pozdrawiam
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 30 Apr 2016 10:10
Date: Sat, 30 Apr 2016 10:10
46 lines
2563 bytes
2563 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:073ae140-8104-4f0b-8178-a838692eda19@googlegroups.com...
Czy o to chodziło?
"SELECT * FROM TabelaFormuklarza
WHERE ([pole_zaciagniete_kryteria] IN (" & [Forms].[Form_kryt]![kryt] & "))"
Pozdrawiam
MF
-------------------------------------------------
Dzięki za odzew :)
Niestety Twoje podpowiedzi nie rozwiązują mojego problemu.
Rzeczywista kwerenda ma składnię
SELECT Imp_temp.F14 AS Powiat
FROM Imp_temp
WHERE (((Imp_temp.F14) In ([Forms]![IMPORT]![kryt2])));
i działa poprawnie dla jednej wartości pola kryt2 zaciąganego do formularza
IMPORT z tabeli pomocniczej Kryteria za pomocą DlookUp np A1
Jeżeli w projekcie kwerendy wkleję zestaw kryteriów z tabeli Kryteria
(A1;B1;C1)
access dodaje automatycznie cudzysłowy "" do postaci
("A1";"B1";"C1")
i poniższa kwerenda filtruje rekordy poprawnie
SELECT Imp_temp.F14 AS Powiat
FROM Imp_temp
WHERE (((Imp_temp.F14) In ("A1";"B1";"C1")));
Nie mogę tego samego zrobić w odwołaniu do pola kryt2 formularza IMPORT.
zaciąganego poprawnie za pomocą DlookUp.
Kombinuje na różne sposoby zapis danych w tabeli pomocniczej
Z cudzysłowami pojed. , podw. lub bez , ze średnikami z przecinkami itd bez
rezultatu :(
Kwerenda zwraca 0 rekordów tak jakbym w kryterium wpisał "".
pozdrawiam
leku
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 13:51
Date: Sat, 30 Apr 2016 13:51
39 lines
2495 bytes
2495 bytes
...
> Kombinuje na różne sposoby zapis danych w tabeli pomocniczej
> Z cudzysłowami pojed. , podw. lub bez , ze średnikami z przecinkami itd bez
> rezultatu :(
> Kwerenda zwraca 0 rekordów tak jakbym w kryterium wpisał "".
>
>
> pozdrawiam
> leku
Powalcze jeszcze.
Proponuję utworzyć przycisk a pod przyciskiem kod:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim db As Databese
Set db = CurrentDB
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
db.Ececute sSQL
Set db = Nothing
End Sub
Pozdrawiam
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 14:00
Date: Sat, 30 Apr 2016 14:00
24 lines
1988 bytes
1988 bytes
Poprawniej:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim db As Databese
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
DoCmd.RunSQL sSQL
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 15:00
Date: Sat, 30 Apr 2016 15:00
25 lines
2108 bytes
2108 bytes
poprawniej jeszcze raz:
Poprawniej:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
DoCmd.RunSQL sSQL
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 30 Apr 2016 16:31
Date: Sat, 30 Apr 2016 16:31
6 lines
1519 bytes
1519 bytes
Coś mi się zdaje że Docmd.RunSql służy do wywoływania kwerendy Akcji typu INSERT, UPDATE, DELATE i zwykłego SELECTA się nie wykona za pomocą tej metody :( pozdrawiam
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 17:13
Date: Sat, 30 Apr 2016 17:13
18 lines
2086 bytes
2086 bytes
W dniu sobota, 30 kwietnia 2016 18:32:27 UTC+2 użytkownik leku napisał:
> Coś mi się zdaje że
> Docmd.RunSql służy do wywoływania kwerendy Akcji typu INSERT, UPDATE, DELATE
>
> i zwykłego SELECTA się nie wykona za pomocą tej metody :(
>
> pozdrawiam
Masz rację. Dawno nie pisałem w VBA.
Może tak:
Dim qdf As DAO.Querydef
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
Pozdrawiam
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 17:17
Date: Sat, 30 Apr 2016 17:17
25 lines
2298 bytes
2298 bytes
Całość kodu pod przyciskiem:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 17:39
Date: Sat, 30 Apr 2016 17:39
30 lines
2429 bytes
2429 bytes
jeszcze trzeba sprawdzić czy istnieje kwerenda "qGeneric":
Całość procedury:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "qGeneric") > 0 Then
DoCmd.DeleteObject(acQuery, "qGeneric")
End If
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 17:57
Date: Sat, 30 Apr 2016 17:57
32 lines
2515 bytes
2515 bytes
poprawka DCount:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = qGeneric And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qGeneric")
End If
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
To już chyba dziś koniec!
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 30 Apr 2016 18:03
Date: Sat, 30 Apr 2016 18:03
53 lines
2722 bytes
2722 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:eafa8aa8-8082-4adf-ab98-8f001100dcc3@googlegroups.com...
Całość kodu pod przyciskiem:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria
zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, "";"", """";"""") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14)
In (" & sCond & ")));"
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
--------------------------------------
Zmieniłem linijkę na
sCond = """" & Replace(sCond, "", "", """", """") & """"
bo debuger krzyczał o zmianę średników na przecinki
sCond="A1;B1;C1" tak podaje debuger
i dalej mam komunikat Type mismatch
debuger podświetla poprawoną linijkę
sCond = """" & Replace(sCond, "", "", """", """") & """"
qdf=Nothing
Ja na dzisiaj wymiękam :(
Za mało mam wiedzy w tej dziedzinie
Dziękuję za próby pomocy
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 18:19
Date: Sat, 30 Apr 2016 18:19
41 lines
2758 bytes
2758 bytes
Musisz tak sformatować sCond
By z wpisu jak zaciągasz do formularza
A1;B1;C1
by powstał wpis:
""A1"",""B1"",""C1""
Taki wpis trzeba przekazać do kwerendy
Proponuję:
sCond = """" & Replace(sCond, chr(59), """" & Chr(44) & """") & """"
Całość:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, chr(59), """" & Chr(44) & """") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = qGeneric And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qGeneric")
End If
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 18:41
Date: Sat, 30 Apr 2016 18:41
15 lines
2093 bytes
2093 bytes
rzutem na taśmę: spróbuj jeszcze tak: sCond = """""" & Replace(sCond, Chr(59), """" & Chr(44) & """") & """""" 6 cudzysłowów na początku + & Replace(sCond, Chr(59), """" & Chr(44) & """") & + 6 cudzysłowów na końcu Wynik ma być: sCond = """A1"", ""B1"", ""C1""" To na tyle :) MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 19:01
Date: Sat, 30 Apr 2016 19:01
19 lines
2306 bytes
2306 bytes
W Excelu zadziłąłą taka funkcja: (Przypominan ciąg końcowy: """A1"",""B1"",""C1""" 8 apostrofów na początku + & Replace(sCond, Chr(59), """""" & Chr(44) & """""") & <- 2x6 apostrofów + 8 apostrofów na koniec warunek sCond przed przekazaniem do SQLa: sCond = """""""" & Replace(sCond, Chr(59), """""" & Chr(44) & """""") & """""""" Dobrze policz ile apostrofów wstawiłeś! Pozdrawiam MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 30 Apr 2016 19:14
Date: Sat, 30 Apr 2016 19:14
62 lines
3057 bytes
3057 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:4e19ace0-0be4-4e68-9b5a-3d7d0c34e3c4@googlegroups.com...
Musisz tak sformatować sCond
By z wpisu jak zaciągasz do formularza
A1;B1;C1
by powstał wpis:
""A1"",""B1"",""C1""
Taki wpis trzeba przekazać do kwerendy
Proponuję:
sCond = """" & Replace(sCond, chr(59), """" & Chr(44) & """") & """"
Całość:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria
zaciagniete bez cudzysłowów
sCond = """" & Replace(sCond, chr(59), """" & Chr(44) & """") & """"
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14)
In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = qGeneric And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qGeneric")
End If
Set qdf = CurrentDB.Querydefs("qGeneric")
qdf.SQL = sSQL
qdf.Execute
End Sub
----------------------------------------------------------------
Debug.Print sCond w oknie Immediate
daje
"A1 "," B1 "," C1"
Natomiast po wklejeniu całej procedury linijka
DoCmd.DeleteObject(acQuery, "qGeneric")
jest podświetlana na czerwono.
Przyznaję, że nie mam pojęcia co to jest za kwerenda systemowa qGeneric
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 19:28
Date: Sat, 30 Apr 2016 19:28
4 lines
2088 bytes
2088 bytes
To samo za pomocą funkcji String$: sCond = String$(3,34) & Replace(sCond, Chr(59), String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 19:40
Date: Sat, 30 Apr 2016 19:40
32 lines
2546 bytes
2546 bytes
> ---------------------------------------------------------------- > Debug.Print sCond w oknie Immediate > > daje > > "A1 "," B1 "," C1" > > Natomiast po wklejeniu całej procedury linijka > > DoCmd.DeleteObject(acQuery, "qGeneric") > > jest podświetlana na czerwono. > Przyznaję, że nie mam pojęcia co to jest za kwerenda systemowa qGeneric Funkcja "Trim" usunie spacje: sCond = String$(3,34) & Replace(Trim(sCond), Chr(59), String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34) "qGeneric" możesz zmienić na "kTymczasowa" czy dowolnie inną nazwę tak znalazłem gdzieś i już nie zmieniałem to tylko nazwa nadana przeze mnie by uruchomiź sSQL przez DAO.Querydef / MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 19:42
Date: Sat, 30 Apr 2016 19:42
36 lines
2920 bytes
2920 bytes
W dniu sobota, 30 kwietnia 2016 21:40:15 UTC+2 użytkownik MaciejF napisał: > > ---------------------------------------------------------------- > > Debug.Print sCond w oknie Immediate > > > > daje > > > > "A1 "," B1 "," C1" > > > > Natomiast po wklejeniu całej procedury linijka > > > > DoCmd.DeleteObject(acQuery, "qGeneric") > > > > jest podświetlana na czerwono. > > Przyznaję, że nie mam pojęcia co to jest za kwerenda systemowa qGeneric > > > > Funkcja "Trim" usunie spacje: > > sCond = String$(3,34) & Replace(Trim(sCond), Chr(59), String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34) > > > > > "qGeneric" możesz zmienić na "kTymczasowa" czy dowolnie inną nazwę > tak znalazłem gdzieś i już nie zmieniałem > to tylko nazwa nadana przeze mnie by uruchomiź sSQL przez DAO.Querydef > > > > / > MF Mam teraz jedynie wątpliwość czy w nazwach powiatów są jakieś spacje czy ich nigdy nie ma? Pamiętaj TRIM usunie wszystkie spacje.
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 20:06
Date: Sat, 30 Apr 2016 20:06
6 lines
2114 bytes
2114 bytes
Trim nie działa. Lepsze poniżej: sCond= Replace((String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)),Chr(32) & Chr(34),Chr(34))
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 20:21
Date: Sat, 30 Apr 2016 20:21
31 lines
2800 bytes
2800 bytes
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = Replace((String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)), Chr(32) & Chr(34), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'qTemp' And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qTemp")
End If
Set qdf = CurrentDB.Querydefs("qTemp")
qdf.SQL = sSQL
qdf.Execute
End Subs
/
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sat, 30 Apr 2016 20:52
Date: Sat, 30 Apr 2016 20:52
32 lines
2979 bytes
2979 bytes
Sporo było tych wersji ta jest ostatnia (ostateczna?)
Przetestuj.
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As DAO.Querydef
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)
sCond = Replace(sCond, Chr(32) & Chr(34), Chr(34))
sCond = Replace(sCond, Chr(34) & Chr(32), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'qTemp' And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qTemp")
End If
Set qdf = CurrentDB.Querydefs("qTemp")
qdf.SQL = sSQL
qdf.Execute
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sat, 30 Apr 2016 21:59
Date: Sat, 30 Apr 2016 21:59
30 lines
2416 bytes
2416 bytes
Podziwiam twoją cierpliwość
Nie wiem na czym testujesz procedurę ale mój Access
jej nie wykonuje.
Debuger zatrzymuje sie na linijce
DoCmd.DeleteObject(acQuery, "qTemp")
podświetla na czerwono tekst
i dalej
Set qdf = CurrentDb.QueryDefs("qTemp")
na żółto tło
+ komunikat
Compile error: Syntax error
Wygląda, że Access nie widzi kwerendy, której faktycznie nie ma qTemp
Natomiast
Debug.Print sCond
zwraca
"""A1"",""B1"",""C1"""
pozdrawiam
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sun, 01 May 2016 06:35
Date: Sun, 01 May 2016 06:35
39 lines
3125 bytes
3125 bytes
a teraz:
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As Querydef
Dim db as Database
Set db = CurrentDB
Set qdf = db.QueryDefs("qTemp")
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)
sCond = Replace(sCond, Chr(32) & Chr(34), Chr(34))
sCond = Replace(sCond, Chr(34) & Chr(32), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'qTemp' And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qTemp")
End If
Set qTemp = db.CreateQueryDef("", sSQL)
qdf.Execute
set qdf = Nothing
set db = Nothing
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sun, 01 May 2016 07:37
Date: Sun, 01 May 2016 07:37
17 lines
2538 bytes
2538 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:62d202bc-2f7e-4a64-a633-7cfef926c6c7@googlegroups.com...
a teraz:
-----------------------------------------
Witaj :)
Poprawiłem składnię
DoCmd.DeleteObject acQuery, "qTemp" ' zmiana
ale procedura dalej zatrzymuje się na
Set qdf = db.QueryDefs("qTemp") ' Nie znaleziono obiektu w tej kolekcji
pozdrawiam
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sun, 01 May 2016 07:47
Date: Sun, 01 May 2016 07:47
37 lines
3316 bytes
3316 bytes
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As Querydef, qTemp AS Querydef 'zmiana
Dim db as Database
Set db = CurrentDB
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)
sCond = Replace(sCond, Chr(32) & Chr(34), Chr(34))
sCond = Replace(sCond, Chr(34) & Chr(32), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'qTemp' And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "qTemp")
End If
Set qTemp = db.CreateQueryDef("", sSQL) 'zmiana
Set qdf = db.QueryDefs("qTemp")
qdf.Execute
set qdf = Nothing
set db = Nothing
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sun, 01 May 2016 08:48
Date: Sun, 01 May 2016 08:48
9 lines
2307 bytes
2307 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:49fd08f2-4f7f-45bd-bd29-c926e1f13fa2@googlegroups.com...
--------------------------------------------------
Dalej to samo :(
Zatrzymuje się na linijce
Set qdf = db.QueryDefs("qTemp") ' Nie znaleziono obiektu w tej kolekcji
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sun, 01 May 2016 10:33
Date: Sun, 01 May 2016 10:33
55 lines
3503 bytes
3503 bytes
> --------------------------------------------------
>
> Dalej to samo :(
> Zatrzymuje się na linijce
>
> Set qdf = db.QueryDefs("qTemp") ' Nie znaleziono obiektu w tej kolekcji
Spróbuj jeszcze inaczej:
(uprościłem całość i chyba wyeliminowałem błędy)
...
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As Querydef
Dim db as Database
Set db = CurrentDB
sCond = [Forms]![IMPORT]![kryt2]
IF IsNull(sCond) Or sCond = "" Then
Exit Sub
End IF
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria zaciagniete bez cudzysłowów
sCond = String$(3,34) & Replace(Trim([sCond]),Chr(59),String$(2,34) & Chr(44) & String$(2,34)) & String$(3,34)
sCond = Replace(sCond, Chr(32) & Chr(34), Chr(34))
sCond = Replace(sCond, Chr(34) & Chr(32), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14) In (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'myTempQry' And [Type] = 5") = 1 Then
DoCmd.DeleteObject(acQuery, "myTempQry")
End If
Set qdf = db.CreateQueryDef("myTempQry", sSQL)
qdf.Execute
set qdf = Nothing
set db = Nothing
End Sub
Pozdrawiam
/
MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sun, 01 May 2016 10:40
Date: Sun, 01 May 2016 10:40
13 lines
2663 bytes
2663 bytes
W wyniku powyższej procedury zostaje utworzona kwerenda o nazwie: "myTempQry" Teraz możesz sobie po wywołaniu tej procedury przejść do zakładki z kwerendami, odnaleźć kwerendę o tej nazwie i spróbować wywołać, Zobaczyć widok projekt, Zobaczyć widok SQL. Czy teraz coś nie "bangla"? / MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Sun, 01 May 2016 10:55
Date: Sun, 01 May 2016 10:55
6 lines
2417 bytes
2417 bytes
Proponuję przejść na Priva. Mojego mejla masz. / MF
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: Zbigniew Bratko
Date: Sun, 01 May 2016 12:03
Date: Sun, 01 May 2016 12:03
63 lines
2541 bytes
2541 bytes
W dniu 2016-04-23 o 16:30, leku pisze:
> Chcę przekazać listę kryteriów z tabeli pomocniczej
> do kwerendy w postaci
> In ("A1";"B1";"C1")
> lub
> "A1" Or "B1" Or "C1"
>
> W tabeli pomocniczej Kryteria mam pola
> Id_kryt - tekst
> rodz_kryt - tekst
>
> W polu rodz_kryt mam zestawy kryteriów
> np
> "A1";"B1";"C1"
> "D1";"F1"
> "T1";"R1";"P1"
>
> Próbowałem z polem kryt na formularzu Form_kryt do którego dane pobierałem
> skutecznie przez
> DLookUp("[rodz_kryt]";"Kryteria";"[id_kryt] = 'kryt1'")
>
> i następnie w kryterium odwoływałem się do pola formularza
> [Forms]![Form_kryt]![kryt] ale to nie działa :(
>
> Jak pobrać (połączyć) takie zestawy kryteriów do kwerendy ?
[...]
A może tak da radę, z kwerendą tymczasową i z poziomu formularza:
'____________________________
Private Sub btnFiltrowanie()
Call Filtruj("kryt2")
End Sub
'_____________________________________________
Private Sub Filtruj(strId_kryt As String)
Dim qryTmp As DAO.QueryDef
Dim sWhere As String
sWhere = Replace(DLookup("[rodz_kryt]", "Kryteria", _
"[id_kryt] = '" & strId_kryt & "'"), ";", ",")
'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 tblDane.* FROM tblDane WHERE MojePole IN (" & sWhere & ")")
DoCmd.OpenQuery qryTmp.Name, acViewNormal
End Sub
--
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sun, 01 May 2016 15:58
Date: Sun, 01 May 2016 15:58
47 lines
3346 bytes
3346 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:439f6fe0-4399-4d52-9c63-cb730ab534f2@googlegroups.com...
--------------------------------------------------------------
Wklejam poprawnie działającą procedurę stworzoną przez Macieja
Wielkie dzięki za pomoc i poświęcony czas :)
Sub btnPowiaty_click()
Dim sSQL As String, sCond As String
Dim qdf As QueryDef
Dim db As Database
Set db = CurrentDb
sCond = [Forms]![Import]![kryt2]
If IsNull(sCond) Or sCond = "" Then
Exit Sub
End If
'sformatuj kryteria dodajac podwojne cudzysłowy
'uwzglednilem poniżej że masz separator średnik i że masz kryteria
zaciagniete bez cudzysłowów
sCond = String$(1, 34) & Replace(Trim([sCond]), Chr(59), String$(1, 34) &
Chr(44) & String$(1, 34)) & String$(1, 34)
sCond = Replace(sCond, Chr(32) & Chr(34), Chr(34))
sCond = Replace(sCond, Chr(34) & Chr(32), Chr(34))
sSQL = "SELECT Imp_temp.F14 AS Powiat FROM Imp_temp WHERE (((Imp_temp.F14)
IN (" & sCond & ")));"
If DCount("*", "MSysObjects", "[Name] = 'myTempQry' And [Type] = 5") = 1
Then
DoCmd.DeleteObject acQuery, "myTempQry"
End If
Set qdf = db.CreateQueryDef("myTempQry", sSQL)
DoCmd.OpenQuery "myTempQry", acViewNormal
Set qdf = Nothing
Set db = Nothing
End Sub
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Sun, 01 May 2016 16:36
Date: Sun, 01 May 2016 16:36
41 lines
2248 bytes
2248 bytes
Użytkownik "Zbigniew Bratko" napisał w wiadomości grup
dyskusyjnych:ng4rbg$b0d$1@node1.news.atman.pl...
[...]
-----------------------------------------
Adoptowałem do swoich danych
[Forms]![Import]![Kryt3] to pole formularza z którego pobieram kryterium do
DLookUp
a następnie zaciągany jest zestaw kryteriów z tabeli Kryteria_3 do kwerendy
wynikowej
np taki zestaw A1;B1;C1
Debuger zatrzymuje się na linijce
sWhere = ...
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 = Replace(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" &
strId_kryt & "'"), ";", ",") ' tu mam błąd Invalid use of Null
'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
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: Zbigniew Bratko
Date: Sun, 01 May 2016 18:37
Date: Sun, 01 May 2016 18:37
62 lines
2545 bytes
2545 bytes
W dniu 2016-05-01 o 18:36, leku pisze:
> Użytkownik "Zbigniew Bratko" napisał w wiadomości grup
> dyskusyjnych:ng4rbg$b0d$1@node1.news.atman.pl...
>
> [...]
>
> -----------------------------------------
> Adoptowałem do swoich danych
> [Forms]![Import]![Kryt3] to pole formularza z którego pobieram kryterium
> do DLookUp
> a następnie zaciągany jest zestaw kryteriów z tabeli Kryteria_3 do
> kwerendy wynikowej
> np taki zestaw A1;B1;C1
>
> Debuger zatrzymuje się na linijce
> sWhere = ...
>
>
>
> 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
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
> sWhere = Replace(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" &
> strId_kryt & "'"), ";", ",") ' tu mam błąd Invalid use of Null
>
> '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
>
>
--
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Mon, 02 May 2016 08:09
Date: Mon, 02 May 2016 08:09
65 lines
3225 bytes
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
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Wed, 04 May 2016 19:51
Date: Wed, 04 May 2016 19:51
35 lines
2682 bytes
2682 bytes
Witaj,
Zbigniewowi chodziło raczej o użycie zmiennej strId_Kryt w funkcji Filtruj():
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] ='" & strId_kryt & "'")
If IsNull(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" & strId_kryt & "'")) Then
MsgBox "Brak kryterium = " & strId_kryt
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
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: leku
Date: Wed, 04 May 2016 22:24
Date: Wed, 04 May 2016 22:24
45 lines
2705 bytes
2705 bytes
Użytkownik "MaciejF" napisał w wiadomości grup
dyskusyjnych:3dba9a86-1130-4922-812d-2c6c953d8e1f@googlegroups.com...
Witaj,
Zbigniewowi chodziło raczej o użycie zmiennej strId_Kryt w funkcji
Filtruj():
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] ='" & strId_kryt & "'")
If IsNull(DLookup("[kryt_pow2]", "Kryteria_3", "[GU] = '" & strId_kryt &
"'")) Then
MsgBox "Brak kryterium = " & strId_kryt
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
--------------------------------
A czy ta zmienna strId_Kryt nie powinna być zdefiniowana ?
pozdrawiam
Re: Access 2010 łączenie kilku kryteriów do kwerendy
Author: MaciejF
Date: Thu, 05 May 2016 05:13
Date: Thu, 05 May 2016 05:13
13 lines
1758 bytes
1758 bytes
> > -------------------------------- > A czy ta zmienna strId_Kryt nie powinna być zdefiniowana ? > > pozdrawiam Jest zdefiniowana tu: Private Sub Filtruj(strId_kryt As String) Pozdrawiam / MF
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads