🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
3 messages
3 total messages Started by "leku" Fri, 04 Sep 2020 19:27
Kryterium kwerendy z pola formularza funkcja In()
#134037
Author: "leku"
Date: Fri, 04 Sep 2020 19:27
20 lines
547 bytes
Mam na formularzu IMPORT w polu Wykonawcy dane jak poniżej
„Kowalski Jan” , „Nowak Andrzej”

Mogę mieć też tak
„Kowalski Jan” ; „Nowak Andrzej”

Jak poprawnie przekazać kryterium z tego pola do kwerendy
Wykorzystując funkcję In() accessa.

Próbuję tak
In([Forms]![IMPORT]![Wykonawcy]) – nie działa
In( " & ([Forms]![IMPORT]![Wykonawcy]) & ") - też nie działa  L

pozdrawiam
leku


--
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Kryterium kwerendy z pola formularza funkcja In()
#134039
Author: Zbigniew Bratko
Date: Sun, 06 Sep 2020 23:27
84 lines
2265 bytes
This is a multi-part message in MIME format.
--------------91B11478411FC18FB8D2C439
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

W dniu 04.09.2020 o 19:27, leku pisze:
> Mam na formularzu IMPORT w polu Wykonawcy dane jak poniżej
> „Kowalski Jan” , „Nowak Andrzej”
>
> Mogę mieć też tak
> „Kowalski Jan” ; „Nowak Andrzej”
>
> Jak poprawnie przekazać kryterium z tego pola do kwerendy
> Wykorzystując funkcję In() accessa.
>
> Próbuję tak
> In([Forms]![IMPORT]![Wykonawcy]) – nie działa
> In( " & ([Forms]![IMPORT]![Wykonawcy]) & ") - też nie działa  L

[...]

Spróbuj podmienić SQL w kwerendzie. Coś w poniższy sposób:

' masz tabelę "MojaTabela" i korzystasz z kwerendy "MojaKwerenda"
Private Sub btnOpenQuery_Click()
Dim sSQL As String
Dim dbs As DAO.Database
Const cQryName As String = "MojaKwerenda"

     sSQL = "SELECT MojaTabela.*, MojaTabela.Wykonawcy" & _
            " FROM MojaTabela" & _
            " WHERE MojaTabela.Wykonawcy" & _
            " IN (" & FunkcjaWykonawcy() & ");"

     Set dbs = CurrentDb
         With dbs
             ' sprawdź, czy istnieje kwerenda
             If IsObject(.QueryDefs(cQryName)) Then
                 'podmień SQL
                 .QueryDefs(cQryName).SQL = sSQL
             Else
                 'utwórz kwerendę
                 .CreateQueryDef cQryName, sSQL
             End If
         End With
     Set dbs = Nothing

     DoCmd.OpenQuery cQryName, acViewNormal, acEdit

End Sub

'_____________________________________________
Private Function FunkcjaWykonawcy() As String

     ' Tutaj musisz sam napisać funkcję, która przetworzy
     ' nazwiska wybranych Wykonawców do postaci poniżej:

     FunkcjaWykNowak Andrzej','Kowalski Jan'"

End Function

--
Pozdrawiam
Zbigniew Bratko

--------------91B11478411FC18FB8D2C439
Content-Type: text/x-vcard; charset=utf-8;
 name="adminBEZTEGO.vcf"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="adminBEZTEGO.vcf"

begin:vcard
fn:Zbigniew Bratko
n:Bratko;Zbigniew
note;quoted-printable:-- 	
	Pozdrowienia BraZby
	 www.faq.accdb.pl
	 www.accdb.pl
version:2.1
end:vcard


--------------91B11478411FC18FB8D2C439--
Re: Kryterium kwerendy z pola formularza funkcja In()
#134040
Author: "leku"
Date: Mon, 07 Sep 2020 19:45
80 lines
2323 bytes
Użytkownik "Zbigniew Bratko"  napisał w wiadomości grup
dyskusyjnych:5f55545a$0$542$65785112@news.neostrada.pl...

W dniu 04.09.2020 o 19:27, leku pisze:
> Mam na formularzu IMPORT w polu Wykonawcy dane jak poniżej
> „Kowalski Jan” , „Nowak Andrzej”
>
> Mogę mieć też tak
> „Kowalski Jan” ; „Nowak Andrzej”
>
> Jak poprawnie przekazać kryterium z tego pola do kwerendy
> Wykorzystując funkcję In() accessa.
>
> Próbuję tak
> In([Forms]![IMPORT]![Wykonawcy]) – nie działa
> In( " & ([Forms]![IMPORT]![Wykonawcy]) & ") - też nie działa  L

[...]

Spróbuj podmienić SQL w kwerendzie. Coś w poniższy sposób:

' masz tabelę "MojaTabela" i korzystasz z kwerendy "MojaKwerenda"
Private Sub btnOpenQuery_Click()
Dim sSQL As String
Dim dbs As DAO.Database
Const cQryName As String = "MojaKwerenda"

     sSQL = "SELECT MojaTabela.*, MojaTabela.Wykonawcy" & _
            " FROM MojaTabela" & _
            " WHERE MojaTabela.Wykonawcy" & _
            " IN (" & FunkcjaWykonawcy() & ");"

     Set dbs = CurrentDb
         With dbs
             ' sprawdź, czy istnieje kwerenda
             If IsObject(.QueryDefs(cQryName)) Then
                 'podmień SQL
                 .QueryDefs(cQryName).SQL = sSQL
             Else
                 'utwórz kwerendę
                 .CreateQueryDef cQryName, sSQL
             End If
         End With
     Set dbs = Nothing

     DoCmd.OpenQuery cQryName, acViewNormal, acEdit

End Sub

'_____________________________________________
Private Function FunkcjaWykonawcy() As String

     ' Tutaj musisz sam napisać funkcję, która przetworzy
     ' nazwiska wybranych Wykonawców do postaci poniżej:

     FunkcjaWykNowak Andrzej','Kowalski Jan'"

End Function

--
Pozdrawiam
Zbigniew Bratko
---------------------------------------------------------------------------------------------

Dziękuję bardzo za przykład rozwiązania mojego problemu.
Biorę się za adaptację
Dane są pobierane z pola listy wielokrotnego wyboru.
I za pomocą gotowej funkcji wrzucane do pola Wykonawcy
na formularzu w układzie
"Nowak Andrzej,Kowalski Jan" akceptowalnym przez operator In()

pozdrawiam
leku




--
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
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