Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: kwerenda z kryterium -OTWARCIE
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004
kwerenda z kryterium -OTWARCIE

witam
mam zapisana kwerende o nazwie "POPRAW_WZOR":
SELECT WZORY.WZOR, WZORY.KOD_DOSTAWCY, WZORY.GRUPA, WZORY.KOLEKCJA, WZORY.ROK
FROM WZORY WHERE (((WZORY.WZOR)=[zmienna]));

PYTANIE: jak otworzyc kwerende w VBA
DoCmd.OpenQuery "POPRAW_WZOR" tak zeby zmienna=123

24-02-2005 23:32
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Nie wiem co dalej z wynikiem kwerendy chcesz zrobić, ale można tak na przykład:

Sub TestTylko()
On Error GoTo TestTylko_Error

    Dim oRs As DAO.Recordset
    Dim oKw As QueryDef
    Set oKw = CurrentDb.QueryDefs("POPRAW_WZOR" )
    oKw.Parameters("[zmienna]" ) = 123
    Set oRs = oKw.OpenRecordset
    oRs.MoveFirst
    MsgBox oRs(2)
    oRs.Close
    Set oRs = Nothing

TestTylko_Exit:
Exit Sub
TestTylko_Error:
MsgBox "Błąd - " & Err.Number & vbCrLf _
            & "Opis -  " & Err.Description & vbCrLf _
            & "Procedura - " & "TestTylko", vbExclamation, "biblioteka - TestTylko"
Resume TestTylko_Exit
End Sub

[Post edytowany dnia 25-02-2005 00:55 przez karolinavb]


_____________________________________________
Karolina

25-02-2005 00:54
Pokaż profil karolinavb  Wyślij email do karolinavb   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Możesz to zrobić równie dobrze i bez kodu za pomocą małej sztuczki.
Utwórz formularz z polem kombi lub tekstowym, gdzie dopasowane będą dane do Twojego pola porównania i utwórz kwerendę:
SELECT WZORY.WZOR, WZORY.KOD_DOSTAWCY, WZORY.GRUPA, WZORY.KOLEKCJA, WZORY.ROK
FROM WZORY WHERE (((WZORY.WZOR)=Forms!Form1!Pole1));


Oczywiście sposób podany przez Karolinkę jest jak najbardziej poprawny i będzie działać bez zarzutu, pod warunkiem, że kwerenda Popraw_wzor istnieje.

Pomyśl, czy nie dasz rady tego zmieniać programowo, tworząc wirtualne obiekty recordset lub przypisując dla źródła kontrolki określoną instrukcję SQL.

Np, w formularzu, którego źródłem jest jakaś kwerenda i umieściłeś w nim jeszcze jakieś pola do wyszukiwania, filtroania rekordów możesz to zrobić tak:

zmiennaTekstowa = "SELECT... WHERE ..."
Me.Recordsource = zmiennaTekstowa

Zaletą tego rozwiązania jest to, że nie dbasz o to, by tworzyć obiekty, a Access sam to za Ciebie załatwia.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

25-02-2005 18:53
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004

chyba nie dosc jasno zadalem pytanie, lub nie na tym forum- powinno byc vba:

-ja mam zapisana w bazie kwerende "popraw_wzor" i probuje ja otwierac z commandbuttona przez
DoCmd.OpenQuery "popraw_wzor", , , criteria = WARUNEK
lub tak
DoCmd.OpenQuery "popraw_wzor", , , WARUNEK
, ale wywala mi blad :
"Wrong number of arguments or inwalid property assignment"
- jezeli uruchomie ja tak : DoCmd.OpenQuery "popraw_wzor" -to pojawia sie monit o wprowadzenie zmiennej, a ja chce tą zmienna przypisac programowo- tzn. wartosc z textboxa a nie wiem jak to zrobić !!!

z góry dzieki

[Post edytowany dnia 28-02-2005 23:14 przez exacum]

28-02-2005 22:19
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Nie jest istotne, gdzie zadałeś pytanie...
Oboje z Karolcią Ciebie zrozumieliśmy i podaliśmy Ci rozwiązania...
Ponadto nie rozumiem, po co masz otwierać kwerendę w widoku arkusza danych, skoro masz możliwość utworzenia raportów lub formularzy wyświetlających dokładnie to samo, tylko w odmienny sposób.

Jeśli nie rozumiesz, daj znać a podeślę Ci przykład.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

28-02-2005 23:19
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004

wlasnie o to mi chodzi -
chcę za pomoca przycisku otworzyc kwerendę w widoku arkusza danych - z parametrem zmienna, wasze odpowiedzi testowalem i nie o to mi chodzi, czy mozecie mi pomoc i napisac jak to zrobic

dzieki

28-02-2005 23:32
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Proszę przeczytać definicję metody  OpenQuery

expression.OpenQuery(QueryName, View, DataMode)

ma tylko 3 parametry a Ty ile podajesz 4 ?:
"popraw_wzor", , , criteria


View  Optional AcView.

AcView can be one of these AcView constants (widok).
acViewDesign
acViewNormal default
acViewPivotChart
acViewPivotTable
acViewPreview 

DataMode  Optional AcOpenDataMode (tryb).

AcOpenDataMode can be one of these AcOpenDataMode constants.
acAdd
acEdit default
acReadOnly 

i nie ma takiego parametru jak kryterium  ?????
Tu sposób zadania pytania nie ma nic do rzeczy, tylko wywołanie jest nieprawidłowe to raz...

Po prostu w zdarzenieniu Click wywołaj taka procedurę jak Ci napisłam na przykład...

Sub TestTylko(byval warunek)


A w linii
oKw.Parameters("[zmienna]" ) = warunek

[Post edytowany dnia 28-02-2005 23:44 przez karolinavb]


_____________________________________________
Karolina

28-02-2005 23:39
Pokaż profil karolinavb  Wyślij email do karolinavb   
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004

Karolinko-
to dziala tak jak mi napisalas, ale ja chcę otworzyc tą kwerendę w widoku arkusza danych- podpowiedz mi czy da sie tak otworzyc

[Post edytowany dnia 01-03-2005 00:03 przez exacum]

28-02-2005 23:44
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004
rozwiązanie

wlasnie rozwiazalem problem:
nalezy zbudowac ui zapoisac kwerende :
SELECT WZORY.WZOR, WZORY.KOD_DOSTAWCY, WZORY.GRUPA, WZORY.KOLEKCJA, WZORY.ROK
FROM WZORY
WHERE (((WZORY.WZOR)=kryteria_wzor()));

gdzie kryteria_wzor to jest funkcja:

Function kryteria_wzor()
kryteria_wzor = Form_produkty.TextBox_wzor.Text
End Function

dziala tak jak chcialem, czyli otwiera kwerende w widoku arkusza danych z zadanym kryterium- czyli tekstem ktory jest wpisany w textbox_wzor

02-03-2005 19:33
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

A przyjrzyj się mojej pierwszej odpowiedzi. Zrobiłem to samo i bez kodu!

Wystarczy tylko dobrze czytać...


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

02-03-2005 20:42
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
exacum




Typ: neutral
Postów: 11
Zarejestrowany: Feb 2004

PROBOWALEM TAK ZROBIC, jak mi napisales:
SELECT WZORY.WZOR, WZORY.KOD_DOSTAWCY, WZORY.GRUPA, WZORY.KOLEKCJA, WZORY.ROK
FROM WZORY WHERE (((WZORY.WZOR)=Forms!Form1!Pole1));
, ale wywalalo mi bledy, moj formularz jest zbudowany w VBA, a nie w ACCESIE i z poziomu accessa (konstruktora wyrazen) nie widze foemularza w VBA- musialem zbudowac funkcje- dzieki za pomoc

03-03-2005 00:23
Pokaż profil exacum  Wyślij email do exacum   Odwiedź stronę exacum  
Wszystkich odpowiedzi: 10 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1