2016-09-09 1 views
1

동일한 재고 항목을 판매 테이블에 추가하는 프로세스의 속도를 높이려고합니다. 추가 할 각 레코드에 대해 데이터가 동일합니다. 나는 7 개의 들판이있는 언 바운드 형식을 가지고있다. 구매 날짜 (날짜), 항목 크기 (텍스트), 설명 (텍스트), 판매자 이름 (텍스트), 조건 (텍스트) 및 유료 가격 (통화). 추가 할 레코드 수를 나타내는 숫자가있는 8 번째 필드가 있습니다. 즉, 50 개의 재고 항목이 추가됩니다.MSACCESS 양식 txt 및 cbo 상자의 표에 레코드 추가

추가 쿼리를 사용하여이 작업을 수행하려고했습니다. 추가 쿼리를 실행하는 폼에 cmd 단추가 있습니다.

지금 추가 쿼리에 두 필드 만 추가했습니다. 쿼리를 실행하면 하나 대신 두 개의 레코드가 추가됩니다! 왜? 그리고 날짜를 추가하려고하지 않았습니다. 날짜는 대개 문제입니다.

나는 stackoverlow에서 읽은 다른 질문에 따라이 방법을 사용하고 있었지만 이것이 필요한 방식으로 작동하지 않을 것이라고 생각하지 않습니다. 궁극적으로 버튼을 클릭하면 8 번째 필드의 숫자 인 경우 레코드 수를 더하고 싶습니다 (예 : 50).

가장 좋은 방법은 무엇입니까? 다음은 처음 두 필드를 사용하는 추가 쿼리의 sql입니다.

감사

INSERT INTO tblSale (BookID, BookCoverType) 
SELECT tblSale.BookID, 
     tblSale.BookCoverType 
FROM tblSale 
WHERE tblSale.BookID = [forms]![FrmAddKawekaStock]![txtBookID] AND 
     tblSale.BookCoverType) = [forms]![FrmAddKawekaStock]![cboKaweka] 

최종 결과는 다음과 같다.

Private Sub cmdAddStockver2_Click() 
    On Error GoTo errorhandler 

    Dim sql As String 
    Dim rs As DAO.Recordset 
    Dim intx As Integer 
    Dim intz As Integer 

    intz = Forms!frmaddkawekastock!txtQuantityToAdd 

    sql = "tblSale" 

    Set rs = CurrentDb.OpenRecordset(sql) 

    MsgBox " adding the record to rs" 

    For intx = 1 To intz 
    With rs 
     .AddNew 
     .Fields!BookID = Forms!frmaddkawekastock!txtBookID 
     .Fields!bookPurchaseDate = Forms!frmaddkawekastock!txtPurchaseDate 
     .Fields![Book Size] = Forms!frmaddkawekastock!cboSize 
     .Fields!BookCoverType = Forms!frmaddkawekastock!cboKaweka 
     .Fields!Seller = Forms!frmaddkawekastock!cboSellerName 
     .Fields!BookCondition = Forms!frmaddkawekastock!txtCondition 
     .Fields!BookPaid = Forms!frmaddkawekastock!txtPaidPrice 
     .Update 
    End With 
    MsgBox "Loop done and record added, next loop" 
    Next intx 

    rs.Close 
    Set rs = Nothing 
    MsgBox "Completed sucessfully" 

    ExitSub: 
     Exit Sub 

    errorhandler: 
     MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description 
     Resume ExitSub 

    End Sub 
+1

모든 데이터를 하나의 UPDATE 문에 추가해야합니다. 'SELECT'가 하나 이상의 레코드를 반환하기 때문에 하나 이상의 레코드를 얻는 이유가 있습니다. 단일 레코드가 실제로 삽입 될 것으로 예상되는 경우이를 제한하십시오. –

+0

제가 이해한다면, 판매 테이블에 품목 50 개 판매를 추가하려면 수량 50 인 레코드 하나 대신 실제로 50 개의 개별 레코드를 추가하십시오. 맞습니까? – SunKnight0

+0

왜 그렇게 많은 레코드를 추가합니까? – Brad

답변

0

이 질문에 대한 답변 : 위의 레코드 세트 코드는 내가 결국 함께했다. 건배

관련 문제