Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Leszynski naming convention
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Refimprove|date=October 2020}} The '''Leszynski naming convention''' (or '''LNC''') is a variant of [[Hungarian notation]] popularized by consultant Stan Leszynski specifically for use with [[Microsoft Access]] development.<ref>{{cite web|url=http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnaraccess/html/msdn_20naming.asp|title=Naming Conventions for Microsoft Access (Archived Microsoft Access Content)|website=MSDN.Microsoft.com}}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Although the [[Naming convention (programming)|naming convention]] is nowadays often used within the [[Microsoft Access]] community, and is the standard in [[Visual Basic]] programming, it is not widely used elsewhere. The conventions are derived from an earlier set of conventions, the Leszynski/Reddick naming conventions, originally developed in 1992 by [[Greg Reddick]]. Eventually, Leszynski and Reddick had different ideas about how the conventions should be developed, and split into two separate sets of conventions, the other being the [[RVBA Conventions]]. As in all Hungarian notations, it uses prefixes (called ''tags'') to indicate the type of [[Object (computer science)|objects]] and [[database development]] fields. The general structure of Hungarian notation (named after [[Charles Simonyi]]'s native country) is to break down object names into the following elements: [prefix(es)][tag]BaseName[Suffix/Qualifier] The tags are [[lower case]] and the object name is [[camel case]]. Spaces and underscores are not used. ==Advantages== Since the Leszynski naming convention is a special form of [[Hungarian notation]] the same general advantages also apply to the Leszynski convention. The use of distinctive prefixes makes your database self-documenting; when you see ''frmSales'' in VBA code, you will know that it references a form, and when you see ''curSales'' you will know that it is a Currency variable. When selecting a query from a drop-down list, you will know that a query starting with ''qmak'' is a make-table query, while one starting with ''quni'' is a union query. This information will allow you to avoid errors such as using the SetFocus method (a control method) with a field, or trying to open a table. ==Disadvantages== *Since the Leszynski naming convention is a special form of [[Hungarian notation]] the same general disadvantages also apply to the Leszynski convention. *Changes in database design may require wholesale renaming. For example, replacing a table with a query would involve either retaining the tbl name for the query, or going through the entire database replacing the tbl name with a query name. *When transferring the database to a different DBMS, problems will arise if the target DBMS does not support [[CamelCase]] names. *As every object of the same type starts with the same letter, it is not possible to navigate through the objects in a [[List box]] by typing the beginning letter. ==Elements== The elements of the naming convention are described in the following table. {| class="wikitable" |- !Component !Description !Example |- |Prefix(es) |A lowercase letter that adds extra information to the tag |p for Public variable |- |Tag |A three-letter sequence indicating the object type |tbl for table |- |BaseName |A word or two describing the object. If several words are used, each starts with a capital letter, and there are no spaces between them |OutlookContacts β contacts imported from Outlook |- |Suffix (RVBA), Qualifier (LNC) |A word giving more specific information about an object |ByDate β the data is sorted by date |} === The Basic LNC Object Prefixes === {| class="wikitable" !Object !Tag |- |Incomplete objects, backup objects, or objects that are under development |_ or β (In some versions of Access, dashes sort to the beginning of the database object list.) |- |Hidden system objects |zh |- |Displayed system objects |zs |- |Programmatically created temporary objects |zt |- |Backup copies of objects, for later copying or reuse |zz |} ===The Basic LNC Variable Prefixes=== {| class="wikitable" !Variable Type !Tag |- |Local variable |[no prefix] |- |Local static variable |s |- |Module-level variable |m |- |Public variable in a form or report module |p |- |Public variable declared in the Declarations section of a standard module |g |} ===The Basic LNC Database Object Tags=== {| class="wikitable" !Object !Tag |- |Class module |cls |- |Form |frm |- |Form (dialog) |fdlg |- |Form (menu) |fmnu |- |Form (message) |fmsg |- |Form (subform) |fsub |- |Macro |mcr |- |Module |bas |- |Module |mod |- |Query (any type) |qry |- |Query (append) |qapp |- |Query (crosstab) |qxtb |- |Query (data definition) |qddl |- |Query (delete) |qdel |- |Query (form filter) |qflt |- |Query (lookup) |qlkp |- |Query (make-table) |qmak |- |Query (select) |qry (or qsel) |- |Query (SQL pass-through) |qspt |- |Query (union) |quni |- |Query (update) |qupd |- |Report |rpt |- |Report (subreport) |rsub |- |Table |tbl |- |Middle Table |trel |- |Table (attached dBASE) |tdbf |- |Table (attached Excel) |txls |- |Table (attached FoxPro) |tfox |- |Table (attached Lotus) |twks |- |Table (attached ODBC) |todb |- |Table (attached Paradox) |tpdx |- |Table (attached SQL Server) |tsql |- |Table (attached text) |ttxt |- |Table (lookup) |tlkp |- |Pages |pge |} ===The LNC Table Field Tags=== {| class="wikitable" !Object !Tag |- |Autonumber (random non-sequential) |idn |- |Autonumber (replication ID) |idr |- |Autonumber (sequential) |ids |- |Binary |bin |- |Byte |byt |- |Currency |cur |- |Date/Time |dtm |- |Double |dbl |- |Hyperlink |hlk |- |Integer |int |- |Long |lng |- |Memo |mem |- |OLE |ole |- |Single |sng |- |Text (character) |chr |- |Yes/No (Boolean) |ysn |} ===The LNC Tags for VBA Variables=== {| class="wikitable" !Object !Tag |- |Boolean |bln |- |CommandBar |cbr |- |Control (generic; useful when cycling through controls on a form or report) |ctl |- |Currency |cur |- |Database |dbs |- |Double |dbl |- |Form |frm |- |Integer |int |- |Long |lng |- |QueryDef |qdf |- |Report |rpt |- |Single |sng |- |Snapshot |snp |- |String |str |- |Table |tbl |- |Type (user-defined) |typ |- |Variant |var |} ===The LNC Tags for Form and Report Controls=== {| class="wikitable" |+(may also be used in code referencing controls) |- !Object !Tag |- |Attachment |att |- |Bound object frame |frb |- |Chart (graph) |cht |- |Check box |chk |- |Combo box |cbo |- |Command button |cmd |- |Custom control |ocx |- |Frame |fra |- |Hyperlink |hlk |- |Image |img |- |Label |lbl |- |Line |lin |- |List box |lst |- |Option button (Radio Button) |opt |- |Option group |grp |- |Page (on a Tab control) |pge |- |Page break |brk |- |Rectangle (shape) |shp |- |Subform/report |sub |- |Tab control |tab |- |Text box |txt |- |Toggle button |tgl |- |Button |btn |- |Unbound object frame |fru |} ===Some Typical LNC Names for Database Objects, Controls and Variables=== {| class="wikitable" !Object/variable name !LNC naming elements !Description |- |tblEmployees |tag + base name |A table of employee data |- |qupdSales |tag + base name |A query that updates sales data |- |fsubDayMax |tag + base name + qualifier |A subform that shows the maximum day |- |intLines |tag + base name |An Integer variable to hold a value representing the number of lines in a Word table |- |curSales |tag + base name |A Currency variable holding a Sales value |- |pstrForm |prefix + tag + base name |A public String variable holding a form name |- |zztblContacts |prefix + tag + base name |A backup Contacts table, for copying and filling with imported data |} ==References== Part of this article is based on Helen Feddema's book, '''Expert One-on-One Microsoft Access Application Development''', Wiley, {{ISBN|0-7645-5904-4}}. {{reflist}} ==External links== *[http://c85.cemi.rssi.ru/access/Books/A97ExSol/indexc.htm Leszynski Naming Conventions for Microsoft Solution Developers] *[http://www.helenfeddema.com/Files/code10.zip LNC Renaming Add-in β A free Access add-in that automatically applies the LNC to an Access 2000, 2002 or 2003 database] *[http://www.xoc.net/standards/rvbanc.asp RVBA Conventions] [[Category:Source code]] [[Category:Naming conventions]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:ISBN
(
edit
)
Template:Refimprove
(
edit
)
Template:Reflist
(
edit
)