Thread View: pl.comp.bazy-danych.msaccess
3 messages
3 total messages
Started by leku
Fri, 04 Sep 2020 17:27
Kryterium kwerendy z pola formularza funkcja In()
Author: leku
Date: Fri, 04 Sep 2020 17:27
Date: Fri, 04 Sep 2020 17:27
20 lines
1751 bytes
1751 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()
Author: Zbigniew Bratko
Date: Sun, 06 Sep 2020 21:27
Date: Sun, 06 Sep 2020 21:27
59 lines
2823 bytes
2823 bytes
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:
FunkcjaWykonawcy = "'Nowak Andrzej','Kowalski Jan'"
End Function
--
Pozdrawiam
Zbigniew Bratko
Re: Kryterium kwerendy z pola formularza funkcja In()
Author: leku
Date: Mon, 07 Sep 2020 17:45
Date: Mon, 07 Sep 2020 17:45
80 lines
3694 bytes
3694 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:
FunkcjaWykonawcy = "'Nowak 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