본문 바로가기

Window Programming/VB

recordset Append & 연산 필드 추가

1.Append 방법

Recordset 오브젝트의 Fields 컬렉션에 Field 오브젝트를 추가하면 메모리 위에서 새롭게 레코드셋을 작성하는 것이 가능하다.작성한 레코드셋에는 Append 방법이나 Update 방법을 사용하고 레코드를 추가하는 것이 가능하다.【서식】recordset.fields.Append Name,Type, DefinedSize, Attrib, FieldValue

recordset:Recordset 오브젝트 Name:레코드셋에 추가하는 필드의 이름 Type:필드의 데이터 형태(adVarChar을 지정한 때는 필드의 사이즈를 지정) DefinedSize:필드의 사이즈(생략 가능) Attrib:필드의 속성.기정치는 adFldDefault. FieldValue:신규 필드의 값을 지정.지정하지 않는 경우는 Null 값이 설정된다.(생략 가능)◆Type
정수 설명
adBoolean Boolean 값을 보여 준다.
adCurrency 흐름을 보여 준다.
adDate 날짜를 보여 준다.
adDouble 배 정밀도 부동 소수점치를 보여 준다.
adInteger 4 아르바이트의 부호 붙고 정수를 보여 준다.
adSingle 단 정밀도 부동 소수점치를 보여 준다.
adVarChar 문자열을 보여 준다.

【포인트】

Append 방법을 실행하고 필드를 추가할 수 있는 것은 신규 Recordset 오브젝트에의 참조를 대입 한 직후의 Recordset 오브젝트이다.열려 있는 Recordset 오브젝트에는 필드를 추가할 수 없다.

2.연산 필드를 추가

연산 필드는 테이블에 등록되고 있는 데이터를 사용하고 연산을 실행하고 그 결과를 표시하는 필드이다.열려 있는 Recordset 오브젝트에는 필드를 추가할 수 없다.연산 필드의 작성은 다음의 순서로 한다.

  1. 새롭게 Recordset 오브젝트를 작성하고 필드를 정의한다.
  2. 연산에 필요한 데이터를 작성한 Recordset 오브젝트에 추가한다.
  3. 연산 결과를 필드에 대입 한다.
【사용 예】   
Public Sub AppendField()    
    Dim CN As ADODB.Connection    
    Dim RS As ADODB.Recordset '신규에 작성하는 레코드셋    
    Dim RRS As ADODB.Recordset  '연산용의 데이터     '접속
   
    Set CN = CurrentProject.Connection    
    '신규에 레코드셋을 작성    
    Set RS = New ADODB.Recordset    
    RS.Fields.Append "상품 ID", adVarChar, 5    
    RS.Fields.Append "단가", adCurrency    
    RS.Fields.Append "세금 포함 가격", adCurrency    
    RS.Open       '[상품 일람]테이블의 내용을 취득    
    Set RRS = New ADODB.Recordset    
    RRS.Open "상품 일람", CN     '추가    

    Do Until RRS.EOF    
        RS.AddNew    
        RS!상품 ID = rsGoods!상품 ID    
        RS!단가 = rsGoods!단가    
        RS!세금 포함 가격 = rsGoods!단가 * 1.05    
        RS.Update     '     
        RS.MoveNext    
        RRS.MoveNext    
    Loop    
'확인    
    RS.MoveFirst    
    Do Until RS.EOF    
        Debug.Print RS!상품 ID, RS!단가, RS!세금 포함 가격    
        RS.MoveNext    
    Loop    
    '종료    
    RRS.Close: Set RRS = Nothing    
    RS.Close: Set RS = Nothing    
    CN.Close: Set CN = Nothing    
End Sub