🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
2 messages
2 total messages Started by alex andryt Sat, 06 Feb 2016 19:29
ACCESS 2003 - kwerenda parametryczna - rzęsy na czole :)
#137103
Author: alex andryt
Date: Sat, 06 Feb 2016 19:29
101 lines
5938 bytes
Mam tą samą funkcję, co poprzednio, udało się ją uruchomić dzięki pomocy Smyk'a. 
(https://groups.google.com/forum/#!topic/pl.comp.bazy-danych.msaccess/-B4zj_POFbE)

Zmienia się tylko źródło danych wejściowych, 
a zmagam się z nowym ERROR'EM 3061 (Za mało parametrów. Oczekiwano 7).

Ponumerowałem więc wszystkie. Ja widzę ich sześć. Skąd ta siódemka?
Znajdzie ktoś wolną chwilę na wskazówkę? 

sql = ""
'blok parametrow:
sql = sql & vbNewLine & "  PARAMETERS                         "
sql = sql & vbNewLine & "     [parZadanieID]      Long,       " '6
sql = sql & vbNewLine & "     [parElementTyp]     Text (255), " '7
sql = sql & vbNewLine & "     [parRola]           Text (255), " '8
sql = sql & vbNewLine & "     [parUtworzonyPrzez] Text (255), " '9
sql = sql & vbNewLine & "     [parDataUtworzenia] DateTime,   " '10
sql = sql & vbNewLine & "     [parElementMediumTyp] Text (255); " '4
' kwerenda dodajaca
sql = sql & vbNewLine & "  INSERT INTO ZadanieRekord          "
sql = sql & vbNewLine & "  ( IDElementu,                      " '1
sql = sql & vbNewLine & "    Element,                         " '2
sql = sql & vbNewLine & "    Skoroszyt,                       " '3
sql = sql & vbNewLine & "    ElementMediumTyp,                " '4
sql = sql & vbNewLine & "    ElementMedium,                   " '5
sql = sql & vbNewLine & "    IdZadania,                       " '6
sql = sql & vbNewLine & "    ElementTyp ,                     " '7
sql = sql & vbNewLine & "    Rola,                            " '8
sql = sql & vbNewLine & "    UtworzonyPrzez,                  " '9
sql = sql & vbNewLine & "    DataUtworzenia )                 " '10

''' SELECT o.IdOsobyFirmy, mfo.IdOsoby, o.Nazwisko, f.Skoroszyt, m.RodzajNosnika, m.NumerWartosc

sql = sql & vbNewLine & "  SELECT                             "
sql = sql & vbNewLine & "    o.IdOsobyFirmy,                  " '1
sql = sql & vbNewLine & "    (o.tytul + ' ') & o.Nazwisko & ('' + o.imie), " '2
'' dodaję Skoroszyt 2013-04-07:
sql = sql & vbNewLine & "    f.Skoroszyt,                     " '3 
sql = sql & vbNewLine & "    m.RodzajNosnika,                 " '4
sql = sql & vbNewLine & "    m.NumerWartosc,                  " '5
sql = sql & vbNewLine & "    [parZadanieID],                  " '6
sql = sql & vbNewLine & "    [parElementTyp],                 " '7
sql = sql & vbNewLine & "    [parRola],                       " '8
sql = sql & vbNewLine & "    [parUtworzonyPrzez],             " '9
sql = sql & vbNewLine & "    [parDataUtworzenia]              " '10

sql = sql & vbNewLine & "  FROM                               "
sql = sql & vbNewLine & "    (( OsobaFirmy AS o               "

sql = sql & vbNewLine & "  INNER JOIN                         "
sql = sql & vbNewLine & "       Firma AS f                    "
sql = sql & vbNewLine & "  ON o.IdFirmy = f.IdFirmy )         "

sql = sql & vbNewLine & "  INNER JOIN                         "
sql = sql & vbNewLine & "       MediumFirmaOsoba AS mfo       "
sql = sql & vbNewLine & "  ON o.IdOsobyFirmy = mfo.IdOsoby )  "

sql = sql & vbNewLine & "  INNER JOIN                         "
sql = sql & vbNewLine & "       Medium As m                   "
sql = sql & vbNewLine & "  ON mfo.IdMedium = m.IdMedium       "


sql = sql & vbNewLine & "  WHERE                              "
sql = sql & vbNewLine & "    f.IdOsobyFirmy In (XXXXXXXX)     "

sql = sql & vbNewLine & "  AND                                "
sql = sql & vbNewLine & "    m.RodzajNosnika=[parElementMediumTyp]"
'''
sql = sql & vbNewLine & "  AND                                "
sql = sql & vbNewLine & "    NOT Exists (                     "
sql = sql & vbNewLine & "     SELECT * from ZadanieRekord zr  "
sql = sql & vbNewLine & "     WHERE o.IdOsobyFirmy = zr.IDElementu "
sql = sql & vbNewLine & "     AND zr.ElementTyp = 'osoba'        " 
sql = sql & vbNewLine & "     AND zr.IdZadania=[parZadanieID])"

  s = fGetIDsFromList(lst, K1)
  
  If Len(s) > 0 Then
    sql = Replace(sql, "XXXXXXXX", s)
    '' tutaj -->
    Debug.Print sql
    
      Set db = CurrentDb
      Set qr = db.CreateQueryDef("", sql)
      
      With qr
	' (6)
        .Parameters("parZadanieID").Value = IdentyfikatorZadania
	' (4)
        .Parameters("parElementMediumTyp").Value = strNazwaNosnikaMedium
	' (7)
        .Parameters("parElementTyp").Value = "osoba"
	' (8)
        .Parameters("parRola").Value = "Adresat"
	' (9)
        .Parameters("parUtworzonyPrzez").Value = CurrentUser
	' (10)
        .Parameters("parDataUtworzenia").Value = Now
        .Execute dbFailOnError
        K2 = qr.RecordsAffected
      End With
Re: ACCESS 2003 - kwerenda parametryczna - rzęsy na czole :)
#137104
Author: alex andryt
Date: Sat, 06 Feb 2016 20:39
1 lines
1422 bytes
błąd znaleziony. Jedna literka. zamiast "f.(...)", powinno być "o.(...)".
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