Fråga : Subdatasheet uppförande

Hälsningar - jag har en uppsättning av Subdatasheet queries, att bygga bo 4 jämnar djupt (ta fram 2003). Den fungerar vanligt fint, men ibland ”+” 's visas inte på ett givet jämnt, som att borra för I-förmiddag besegrar. Precis nära I vanligt queryen på högsta nivå, öppnar den om igen, och den fungerar fint efter that.

Here sent, ”+” 's verkar inte på det 2nd jämnt den första tiden som jag borrar besegrar från det första jämnt. Slut I det 1st jämna qry, öppnar det om igen, och det fungerar fint.

What är avtalet här? finns det något trick till danande som dessa saker uppför konsekvent? (helst, korrekt…)

Thanks

" klar "

Svar : Subdatasheet uppförande

Enligt Allen Browne, den kända egenskapen för subdataseet är ett problem i ms tar fram och bör vändas av.  ([Automatiskn] Subdatasheet för den kända egenskapsuppsättningen bör vara [inga].),  Se detta anknyta, excerperat nedanfört:      http://allenbrowne.com/bug-09.html

Jag tror subdatasheetsna som fortfarande ska, fungerar på basen av det ledar-, och barnet anknyter, även om den kända egenskapen för subdatasheet har vänts av.  Se till dig för att ha adekvat reserver för danande några ändringar, som alltid.
________________________________________________________________
Bordlägger: SubdatasheetName
I Access 2000 bordlägger fånget en ny egenskap som kallas SubdatasheetName. Om egenskapen inte är fastställd, den standardinställer till ”[automatiskn]”. Dess datasheet visar en plus undertecknar som användaren kan klicka för att visa släkta rekord från någon annat bordlägger, som tar fram funderare kan vara användbara.

Denna automatiskt tilldelade egenskap övertas by bildar, och subforms som visas i datasheet, beskådar. Klart denna är inte en bra idé och kan ha unintended följder i applikationer som importeras från tidigare versioner. Den värre stillbilden, där är den allvarliga kapaciteten utfärdar tillhörande med att ladda en bilda som har flera subforms, var ta fram figurerar ut och samla data från den mer släkta multipeln bordlägger.

Igen lösningen är att vända av subdatasheets, genom att ställa in egenskapen till ”[inga]”. Igen det finns inget långt att göra detta vid standard, så du måste minnas att göra så varje tid som du skapar en bordlägga. Detta kodifierar ska kretsar till och med ditt bordlägger av och vänder egenskapen:

Fungera TurnOffSubDataSh ()
    Dunkel db som DAO.Database
    Dunkel tdf som DAO.TableDef
    Dunkel prp som DAO.Property
    Const conPropName = ”SubdatasheetName”,
    Const conPropValue = ”[inga]”,
   
    Uppsättning db = DBEngine (0) (0)
    För varje tdf i db.TableDefs
        Om (tdf. Attribut och dbSystemObject) = 0 därefter
            Om tdf. Förbind = vbNullString och Asc (tdf. Namnge) <> 126 'som inte fästas därefter eller arbeta tillfälligt.
                Om inte HasProperty (tdf, conPropName) därefter
                    Fastställd prp = tdf.CreateProperty (conPropName, dbText, conPropValue)
                    prp för tdf. Properties.Append
                Annars
                    Om tdf. conPropValue för rekvisita (conPropName <> ) därefter
                        tdf. Rekvisita (conPropName) = conPropValue
                    Avsluta om
                Avsluta om
            Avsluta om
        Avsluta om
    Därefter
   
    Fastställd prp = ingenting
    Fastställd tdf = ingenting
    Uppsättning db = ingenting
Avsluta fungerar

Allmänhet fungerar HasProperty (obj som anmärker, strPropName som stränger) som Boolean
    'Ämna:   Gå riktigt tillbaka, om anmärka har egenskapen.
    Dunkelt varDummy som Variant
   
    På felmeritförteckning därefter
    varDummy = obj. Rekvisita (strPropName)
    HasProperty = (Err.Number = 0)
Avsluta fungerar
Andra lösningar  
 
programming4us programming4us