vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Access i SQL w VBA.
Błąd 3061 za mało parametrów oczekiwano 1

otwartyotwarty rozpoczął: pozoor postów: 4



napisał: pozoor
postów: 5


umieszczony:
8 sierpnia 2007
10:28

  
Już zrobiłem. poprawiłem estetykę ;)
Wszystko super działa!!!
WIELKIE dzięki :)

pozdrawiam
-Adam
napisał: pozoor
postów: 5


umieszczony:
8 sierpnia 2007
09:11

  
Witam!
Dzięki za pomoc już widzę co mogę zrobić... WIELKIE DZIĘKI!
Co do źle zdeklarowanej, zmiennej, spacji i małego nie ładu to wina tego, że mam na to mało czasu i robiłem to w pośpiechu.
Natomiast jeżeli chodzi o Miesiąc i rok tak to są osobne pola, są typu liczbowego podobnie jak tydzień, mam w bazie kilkaset pól, między innym też i złączoną datę o formacie data/godzina...zasadniczo baza ma już 6 lat (nie ja stworzyłem) i jest naprawdę mało elastyczna, stąd masa kombinacji, jak również i niezbędna pomoc przy głupich problemach (tak jak teraz) ;)
No nic jeszcze raz DZIĘKI DZIĘKI DZIĘKI!!!
napisał: jalamas
postów: 316


umieszczony:
8 sierpnia 2007
06:15

  
Proszę sobie prze linijką Exceute dopisać : Debug.Print q
I zobaczyć wartość zmiennej q w okienku Immediate
lub MsgBox q
i co widzimy ?

SELECT [T-ArtGrpStamm].AGNAME,
[T-MBD].Account,
Count(PMSa5.Preis) AS PoliczOfPreis,
PMSa5.JJDef,
PMSa5.MMDef,
PMSa5.Reichw,
PMSa5.wkz
INTO top_10_kategor
FROM [T-MBD]
INNER JOIN ((PMSa5 INNER JOIN [T-ArtikelStamm]
ON PMSa5.ArtKz = [T-ArtikelStamm].ArtID)
INNER JOIN [T-ArtGrpStamm]
ON [T-ArtikelStamm].AgId = [T-ArtGrpStamm].AgId)
ON [T-MBD].MkKz = PMSa5.MkKz
GROUP BY [T-ArtGrpStamm].AGNAME,
[T-MBD].Account,
PMSa5.JJDef, PMSa5.MMDef,
PMSa5.Reichw, PMSa5.wkz
HAVING (((PMSa5.JJDef) = 2007) And ((PMSa5.MMDef) = mon !!!!!!!!!!!!!!!))WITH OWNERACCESS OPTION;


Powyżej niezależnie od wyniku InputBox w stringu q jest zawsze napis mon (wykrzykniki).
Pomijam brak sprawdzenia wyniku InputBox , oraz brak spacji tutaj na przykład:
q & "WITH
oraz
Dim q
Q też jest typu String, dlaczego w deklracji jest Variant?


Musi być konkatenacja stringów:

q = "SELECT [T-ArtGrpStamm].AGNAME, [T-MBD].Account, Count(PMSa5.Preis) AS PoliczOfPreis, PMSa5.JJDef, PMSa5.MMDef, PMSa5.Reichw, PMSa5.wkz INTO top_10_kategor "
q = q & " FROM [T-MBD] INNER JOIN ((PMSa5 INNER JOIN [T-ArtikelStamm] ON PMSa5.ArtKz = [T-ArtikelStamm].ArtID) INNER JOIN [T-ArtGrpStamm] ON "
q = q & " [T-ArtikelStamm].AgId = [T-ArtGrpStamm].AgId) ON [T-MBD].MkKz = PMSa5.MkKz "
q = q & " GROUP BY [T-ArtGrpStamm].AGNAME, [T-MBD].Account, PMSa5.JJDef, PMSa5.MMDef, PMSa5.Reichw, PMSa5.wkz "
q = q & " HAVING (((PMSa5.JJDef) = 2007) And ((PMSa5.MMDef) = "
q = q & CStr(mon) & "))"
q = q & " WITH OWNERACCESS OPTION; "

P.S.
Nie wiem czy dobrze wnioskuję z Twojego zapytania
- PMSa5.JJDef) =...
- PMSa5.MMDef =...
lecz chyba masz osobne pola dla roku i miesiąca, jeśli tak, to błąd, tego się nie robi.
Pole powinno być typy Data/Godzina, do odczytu roku i miesiąca ( a także wymaganego ich zobrazowania) są odpowiednie funkcje.
Jeżeli jednak każde z tych pól jest typu Data/Godzina, a chcesz tylko porównać odpowiednio rok i miesiąc z tych pól skorzytaj w powyższym zapytaniu też z odpowiednich funkcji.
napisał: pozoor
postów: 5


umieszczony:
7 sierpnia 2007
10:25

  
Hello mam następujący problem.
Próbuje sobie poprzez inputboxa dodac do kwerendy w accessie wybrana wartość w tym przypadku akurat miesiąć.
Po wykonaniu sql'owej kwerendy otrzymuje następujący błąd :

Błąd 3061 za mało parametrów oczekiwano 1
Ponizej kod:

Private Sub Przełącznik2_Click()
dim q
Dim mon As String
mon = InputBox("Podaj Miesiąć", "Miesiąc")

q = "SELECT [T-ArtGrpStamm].AGNAME, [T-MBD].Account, Count(PMSa5.Preis) AS PoliczOfPreis, PMSa5.JJDef, PMSa5.MMDef, PMSa5.Reichw, PMSa5.wkz INTO top_10_kategor "
q = q & "FROM [T-MBD] INNER JOIN ((PMSa5 INNER JOIN [T-ArtikelStamm] ON PMSa5.ArtKz = [T-ArtikelStamm].ArtID) INNER JOIN [T-ArtGrpStamm] ON "
q = q & "[T-ArtikelStamm].AgId = [T-ArtGrpStamm].AgId) ON [T-MBD].MkKz = PMSa5.MkKz "
q = q & "GROUP BY [T-ArtGrpStamm].AGNAME, [T-MBD].Account, PMSa5.JJDef, PMSa5.MMDef, PMSa5.Reichw, PMSa5.wkz "
q = q & "HAVING (((PMSa5.JJDef) = 2007) And ((PMSa5.MMDef) = mon))"
q = q & "WITH OWNERACCESS OPTION; "


'DoCmd.DeleteObject acTable, "top_10_kategor"
CurrentDb.Execute (q)

Wie ktos może jak rozwiązać ten problem?
Dzięki z góry za pomoc


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z