2011-04-09 4 views
1

객체 대신 변수 사용

... 내 질문은 무엇입니까 개체 (lblIDNumber) 대신 변수 (varIDNumber)를 사용하면 구문은 무엇입니까? VB6.0

을 사용하고 있습니다.
+0

'lblIDNumber'와'txtIDNumber'에 대해 혼란 스럽습니다. 라벨이나 텍스트 상자를 사용하고 있습니까? 나는 당신이'lblIDNumber.Caption'라고 말할 때'txtIDNumber.Text'라고 가정합니다. – mgiuca

+0

죄송합니다 ... 나는 lblIDNumber를 의미합니다 – aer

+0

그럼 조금 혼란 스럽네요. 라벨에서 벗어나면 사용자가 수정할 수있는 것이 아닙니다. 상수 일까? – mgiuca

답변

1

와 Me.lblIDNumber.Caption 교체 사용하고 있습니다 - 당신은 lblIDNumber을 언급했다. 나는 그 두 사람이 같다고 생각한다.

.RecordSource = "select * from tblpersonal where empid like '" & Me.txtIDNumber.Text & "*'" 

그래서 당신은 SQL 쿼리를 채우는 형태로 텍스트 상자의 값을 사용하고 있습니다 : 즉, 당신이 현재 가지고있는 코드는 다음과 같이해야한다. 지금까지 내가 맞습니까?

그리고 ID 필드를 텍스트 필드가 아닌 변수에 저장하면 어떻게 될까요? 나는 동의한다, 이것은 아마 올바른 방향의 한 걸음이다.

그래서 당신은 사용하여 양식의 "일반 선언"섹션에서 변수를 만들 수 있습니다 :

Dim idNumber As Integer 

을 그 변수마다 텍스트 필드의 값이 변경을 업데이트 할 수있는 아이디어. 참고 : "ID 번호"가 정수라고 가정합니다. 그렇지 않은 경우 String을 대신 사용해야합니다.

이제 텍스트 필드가 변경되면 해당 변수를 업데이트해야합니다. txtIDNumber_Change 이벤트에서 txtIDNumber.Text 문자열을 Integer로 변환하는 코드를 추가하고 idNumber에 저장하려고합니다. 나는 정확한 구문을 잊지하지만 내가 좋아하는 뭔가를 추측하고 마지막으로

idNumber = Int(txtIDNumber.Text) 

, 이제 텍스트 상자가 아닌 SQL 쿼리에 idNumber 변수를 사용할 수 있습니다 :

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'" 
+1

SQL 삽입 취약점에 대한 참고 사항 : 원본 코드에는 보안 문제가 있습니다. 텍스트 필드'4 '에 드롭 테이블 tblpersonal; select * from tblpersonal where empid =''- 이것은 문자열을 삭제하지 않았기 때문에 실제로 악의적 인 테이블 삭제 코드를 실행합니다. 이 특정 문제에 대한 문제를 해결할 수 있지만 전체 문자열을 허용하려는 경우 문제를 해결하는 것이 훨씬 더 어려워 질 것입니다. – mgiuca

+0

@mgiuca ... 그래서 가장 적합한 구문은 무엇입니까?이 코드는 * * 검색 프로그램 **. – aer

+0

코드의 목적이 사용자가 텍스트 필드에 입력하는 ID로 직원을 검색 할 수있게하려면 레이블이 아닌 텍스트 필드가 있어야합니다. 내가 혼란스러워하는 질문에 대한 답변으로 그거. 텍스트 필드가 있으면 내 대답은 필요한 모든 구문을 제공합니다 ... 변수를 정의하고 문자열을 정수로 변환하여 변수에 저장 한 다음 쿼리에서 변수를 사용합니다. – mgiuca

0

이 varIDNumber

+0

'varIDNumber'와 같은 empid가 어디에 있는지 구문을 묻고있다. '.RecordSource = "select * from tblpersonal * ' "'맞습니까? – aer

+1

글쎄, 여전히 앰퍼샌드가 필요합니다. 그래서 ... "& varIDNumber &"* ' "와 같은 empid가 있습니다. 그러나 여전히 변수를 채우기위한 코드가 필요합니다. – mgiuca

0

을 당신이있는 경우 상수를 레이블에 저장하고 대신 상수를 변수에 저장하려면 양식의 코드에 Const을 작성하십시오. 레이블에 텍스트 "43"이 있다고 가정 해 봅시다. 폼의 일반 선언 섹션에서

, 코드 추가 : 다음

Const idNumber As Integer = 43 

을, 쿼리를 구성 할 때 :

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'" 

이 상수 43 I 돈을 사용하여 쿼리를 구성됩니다 직원 번호가 사용자가 입력 할 수있는 것이되기를 원하면 다른 답변을 참조하십시오.

+0

... 물어봐도 될까요? 별표의 목적은 무엇입니까? – aer

+0

* 무엇을위한 것인지는 잘 모르겠다. %는 일반적으로 사용하는 것 같아요. ""% & SQL에서 와일드 카드로 사용됩니다. 즉, 해당 숫자로 시작하는 idNumber를 가진 모든 직원을 검색하십시오. – mgiuca