2013-03-26 1 views
0

나는 다음과 같은 열이있는 테이블 [EMP를]이로 다시 삽입 할
월,
년,
ModDate나는 테이블에서 300 개 행을 선택하고 같은 테이블

나는 SA와 같은 테이블에 300 개 새 레코드를 생성하기 위해 지난 달부터 약 300 레코드를 사용하려는

나를 삽입 문 중에 수정하려는 월 속성을 제외한 값.

이 목적으로 MS Access + vb6을 사용하고 싶습니다.

이 문제를 해결하는 데 도움을 주시면 정말 감사하겠습니다.

다음과 같이 내가 실행하려고 쿼리는 다음과 같습니다

INSERT INTO Emp (EmpID, EmpName, EmpLastName, EmpSalary, [Month], [Year], ModDate) 
SELECT Emp.EmpID, Emp.EmpName, Emp.EmpLastName, Emp.EmpSalary, 4 AS Expr1, Emp.[Year], Now() AS Expr2 
FROM Emp 
WHERE (((Emp.[Year])=2013) AND ((Emp.[Month])=3)) 
+0

"300"값에 중요한 의미가 있습니까? 아니면 직원의 대략적인 숫자입니까? 즉, * 300 명 이상의 직원이 있더라도 모든 직원의 기록을 복사 하시겠습니까? –

+0

예, 맞습니다. 대략적인 직원 수입니다. – Claude

+0

내가 원하는 것은 미리보기 월의 모든 직원을 1 월의 모든 직원을 복사하고, 그 달을 Febrary로 수정하고, 모두 같은 테이블에 삽입하는 것입니다. – Claude

답변

0

당신이 달성하고자하는 것의 본질은 3 월 2013 레코드를 선택하고 같은에 삽입 다음과 같은 쿼리 년 4 월 2013 표 :

INSERT INTO Emp (EmpID, EmpName, EmpLastName, EmpSalary, [Month], [Year], ModDate) 
SELECT Emp.EmpID, Emp.EmpName, Emp.EmpLastName, Emp.EmpSalary, 4 AS Expr1, Emp.[Year], Now() AS Expr2 
FROM Emp 
WHERE (((Emp.[Year])=2013) AND ((Emp.[Month])=3)) 

[편집]

는 위의 쿼리는 [월]는 Numeri라고 가정 c 열. [월]는 텍스트 열이면 해당 쿼리는 달에게 숫자를 저장하는 가 많은 달을 이름를 저장하는 바람직하다, 그러나

INSERT INTO Emp (EmpID, EmpName, EmpLastName, EmpSalary, [Month], [Year], ModDate) 
SELECT Emp.EmpID, Emp.EmpName, Emp.EmpLastName, Emp.EmpSalary, 'April' AS Expr1, Emp.[Year], Now() AS Expr2 
FROM Emp 
WHERE (((Emp.[Year])=2013) AND ((Emp.[Month])='March')) 

참고가 될 것입니다. 해당 열을 텍스트로 유지하면 길 아래에서 불필요한 합병증이 발생할 가능성이 높습니다.

[/ 편집]

12 월 -위한 연도 Year(), Month() 등과 같은 VB 기능의 결과로 하드 코딩 된 값을 대체하는, 이러한 문자열을 구성하는 (그리고 증가 할 수 VB6 코드 > 1 월). SQL 문자열을 생성 한 후에는 (예 : .Execute과 같은 메서드를 사용하여) 설정된 데이터베이스 연결을 사용하여 SQL 문자열을 실행할 수 있습니다.

+0

도움 주셔서 감사합니다. 네가 제안한 것을 시험해 보겠다. 년 및 월에 대해서는 vb 텍스트 상자 또는 콤보 상자를 사용하여 해당 값을 입력합니다. – Claude

+0

쿼리를 실행하려고하면 "데이터 형식이 조건 식에 일치하지 않습니다." – Claude

+0

질문을 편집하여 실행하려는 쿼리를 표시하십시오. –

관련 문제