배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - 참고 (필드, 컨트롤, 개체 이름 짓기), Access 2000
  


참고 - 필드, 컨트롤, 개체 이름 짓기

Q > 특정텍스트 상자의 기본값 : =Format(Date(),"yymm")
식의 'Date'함수가 정의되지 않았습니다...라는 에러가 자꾸 뜹니다.
저 녀석만 그런 것이 아니라 Date() 함수를 사용하는 모든 경우에 그렇군요.
덕분에 날짜함수를 사용하지 못하고 있습니다.
오피스를 다시 깔아도 마찬가지네요.
다른 컴퓨터에서 실행을 시켜도 동일한 에러가 뜹니다.
아무래도 어딘가 코딩을 잘못한 거 같은데.....
어떤 경우에 그런 에러가 뜨나요?
A > Date를 사용하는 모든 경우 그리고 다른 컴퓨터에도 그런 오류가 발생한다고 해서 모듈을 살펴보았더니 모듈이름을 Date라고 지으셨군요. 액세스 내장 함수일 Date()함수와 사용자가 만든 Date모듈이름이 충돌이 일어난 겁니다.

필드, 컨트롤, 개체 이름의 제한사항

• 64자까지 가능합니다.
• 문자, 숫자, 공백, 특수 문자(마침표(.), 느낌표(!), 악센트 기호(`), 대괄호([ ])는 제외)를 조합하여 사용할 수 있습니다.
• 첫 글자는 공백으로 시작할 수 없습니다.
• 제어 문자(ASCII 값 0부터 31까지)를 포함할 수 없습니다.
• Microsoft Access 프로젝트의 테이블, 뷰, 저장 프로시저 이름에는 큰따옴표를 넣을 수 없습니다.

이름에 있는 공백은?

필드, 컨트롤, 개체 이름에 공백을 사용할 수 있지만,
이름에 있는 공백은 Microsoft Visual Basic for Applications에서 충돌을 일으킬 수 있기 때문에 Microsoft Access 설명서에 있는 대부분의 예제에서는 필드와 컨트롤 이름에 공백을 사용하지 않습니다.

이름 짓는 규칙

개체나 변수, 상수, 프로시져(서브, 함수)의 이름은 가능하면 그 이름만 보고도 형식과 범위를 알 수 있고 구분되고 무슨 역할을 하기 위해 만들었는가를 바로 알아 볼 수 있도록 이해하기 쉽고 설명적으로 작성해야 합니다. 한가지 더 중요한 것은 일관성 있도록 사용하기 쉬워야 합니다. 또한 당연한 이야기지만 이렇게 구별이 되지 이름을 짓게 되면 이름들이 서로 중복되지 않을 가능성이 더 커지게 됩니다.

다음 URL을 꼭 보시고 익히시길 바랍니다.

참고: 명명법에 대한 참고 URL
Microsoft Consulting Services Naming Conventions for Visual Basic http://support.microsoft.com/default.aspx?scid=kb;EN-US;q110264

참고] 이름 규칙을 사용하는 장점
• 표준화를 이룰 수 있다.
• 실수하지 않고 이해하기 쉽고 그리고 확실하게 구별되는 코드를 작성할 수 있다.
• 다른 컴퓨터 언어에서도 일관되게 사용할 수 있다.
• 이름을 효과적으로 사용할 수 있으며 수고를 덜게 된다.
• 중요한 것은 이러한 목적을 달성하는 것이 어려운 것이 아니라 쉽다.

Hungarian Rule

이렇게 하기 위해서 흔히 Hungarian Rule을 사용합니다.

[prefix][tag][base name][suffix] : [접두사][구별자][기본명칭][접미사]

prefix나 tag은 대개 1~3글자 그리고 소문자를 사용합니다.
base name과 surfix는 1~3정로로 구성되고 단어의 첫 글자를 대문자로 시작하여 구별하기 좋게 합니다.(구별을 위해 Underline을 사용하기도 합니다.)

액세스 도움말에서 제공되는 예제만 착실하게 보시면 이러한 명명법은 쉽게 익힐 수 있습니다. 표준적인 방법을 사용한다는 것은 매우 중요한 것입니다.

몇 가지 예를 들어보겠습니다.

txtCustomerID라는 명칭을 보면 입력란(Text Box= txt)컨트롤인데 CustomerID를 값으로 가지고 있다는 것을 알 수 있습니다.

또 frmGetCustName 는 폼(Form=frm)인데 무언가 입력을 받는(Get) 역할을 하는데 그게 뭐냐면 바로 고객이름(CustName)이라는 것입니다.

mrstCustomers 라는 것은 고객정보(Customers)를 가지고 있는 레코드셋(rst)인데 폼의 모듈변수(m)로 사용한다는 뜻을 가지고 있습니다.

위 경우에서 m은 prefix이고 frm, txt, rst 등이 tag입니다. Get, Customers, CustomerID 등이 base name이고 CustName이 surfix라고 할 수 있습니다.

Suggested Prefixes for Variables

C/C++ data type

Hungarian
prefix

Description

VBA equivalent

BOOL

b

8-bit Boolean value. Zero indicates False; nonzero indicates True.

Boolean or Long

BYTE

ch

8-bit unsigned integer

Byte

HANDLE

h

32-bit unsigned integer that represents a handle to a Windows object

Long

int

n

16-bit signed integer

Integer

long

l

32-bit signed integer

Long

LP

lp

32-bit long pointer to a C/C++ structure, string, function, or other data in memory

Long

LPZSTR

lpsz

32-bit long pointer to a C-type null-terminated string

Long

Suggested Prefixes for Controls

Control type prefix Example

3D

pnl

pnlGroup

ADO Data

ado

adoBiblio

Animated button

ani

aniMailBox

Check box

chk

chkReadOnly

Combo box, drop-down list box

cbo

cboEnglish

Command button

cmd

cmdExit

Common dialog

dlg

dlgFileOpen

Communications

com

comFax

Control (종류를 모를 때)

ctr

ctrCurrent

Data

dat

datBiblio

Data-bound combo box

dbcbo

dbcboLanguage

Data-bound grid

dbgrd

dbgrdQueryResult

Data-bound list box

dblst

dblstJobType

Data combo

dbc

dbcAuthor

Data grid

dgd

dgdTitles

Data list

dbl

dblPublisher

Data repeater

drp

drpLocation

Date picker

dtp

dtpPublished

Directory list box

dir

dirSource

Drive list box

drv

drvTarget

File list box

fil

filSource

Flat scroll bar

fsb

fsbMove

Form

frm

frmEntry

Frame

fra

fraLanguage

Gauge

gau

gauStatus

Graph

gra

graRevenue

Grid

grd

grdPrices

Hierarchical flexgrid

flex

flexOrders

Horizontal scroll bar

hsb

hsbVolume

Image

img

imgIcon

Image combo

imgcbo

imgcboProduct

ImageList

ils

ilsAllIcons

Label

lbl

lblHelpMessage

Lightweight check box

lwchk

lwchkArchive

Lightweight combo box

lwcbo

lwcboGerman

Lightweight command button

lwcmd

lwcmdRemove

Lightweight frame

lwfra

lwfraSaveOptions

Lightweight horizontal scroll bar

lwhsb

lwhsbVolume

Lightweight list box

lwlst

lwlstCostCenters

Lightweight option button

lwopt

lwoptIncomeLevel

Lightweight text box

lwtxt

lwoptStreet

Lightweight vertical scroll bar

lwvsb

lwvsbYear

Line

lin

linVertical

List box

lst

lstPolicyCodes

ListView

lvw

lvwHeadings

MAPI message

mpm

mpmSentMessage

MAPI session

mps

mpsSession

MCI

mci

mciVideo

Menu

mnu

mnuFileOpen

Month view

mvw

mvwPeriod

MS Chart

ch

chSalesbyRegion

MS Flex grid

msg

msgClients

MS Tab

mst

mstFirst

OLE container

ole

oleWorksheet

Option button

opt

optGender

Picture box

pic

picVGA

Picture clip

clp

clpToolbar

ProgressBar

prg

prgLoadFile

Remote Data

rd

rdTitles

RichTextBox

rtf

rtfReport

Shape

shp

shpCircle

Slider

sld

sldScale

Spin

spn

spnPages

StatusBar

sta

staDateTime

SysInfo

sys

sysMonitor

TabStrip

tab

tabOptions

Text box

txt

txtLastName

Timer

tmr

tmrAlarm

Toolbar

tlb

tlbActions

TreeView

tre

treOrganization

UpDown

upd

updDirection

Vertical scroll bar

vsb

vsbRate

Suggested Prefixes for Data Access Objects (DAO)

Use the following prefixes to indicate Data Access Objects.

Database object

Prefix

Example

Database object

Prefix Example

Container

con

conReports

Parameter

prm

prmJobCode

Database

db

dbAccounts

QueryDef qry

qry

SalesByRegion

DBEngine

dbe

dbeJet

Recordset

rec

recForecast

Document

doc

docSalesReport

Relation

rel

Relation

Field

fld 

fldAddress

TableDef

tbd

tbdCustomers

Group

grp

grpFinance

User

usr

usrNew

Index

ix

idxAge

Workspace

wsp

wspMine

 

 

  목차 | 이전 | 다음