2015-01-08 1 views
1

문자/숫자의 숫자가 다른 특정 제품 코드가 있습니다. 53HD6J, HH88WBD3 (5 ~ 10 글자/숫자로 다양 함). 바코드를 올바르게 스캔하려면 13 자/자릿수가 있어야합니다. 사용자가 각 코드 다음에 -XXXX를 입력하도록하고 싶지는 않지만 Access에서 코드 길이와 13의 차이를 계산하고 나머지는 X로 채우도록하십시오. 이것은 vba 또는 expression에 의해 가능합니까?계산 된 숫자의 X를 양식 입력에 추가하는 방법은 무엇입니까?

저는 현재 여섯 개의 IIF를 하나의 수식으로 사용하여 나머지 공백을 X로 채우고 있지만 더 쉬운 방법이 있기를 바라고 있습니다.


나는 배치 번호 (제품 코드)로 입력 할 양식이 있습니다. 양식이 제출되면 인쇄 된 보고서로 연결됩니다. 보고서에는 배치 번호 (53HD6J, HH88WBD3)가 있습니다. 이 기능을 사용하고자하는 지점은 코드 옆에있는 텍스트 상자에 있으며 코드가 길이를 결정하고 추가 할 나머지 X를 계산합니다. 이것은 바코드 글꼴이므로이 텍스트 상자는 53HD6JXXXXXXX가있는 곳입니다. 그것을 지우는 희망!


그래서 나는 그 부분을 알아 냈습니다. 내 문제는 이제 내 바코드 글꼴이 무엇이든 상관없이 텍스트를 읽고 바코드가 비어있을 때 바코드가 나타나도록 번역합니다 (입력 할 배치 코드가 4 개 있음). 그래서 내가 전에했던 것은 = IIf ([Text31] = "", ""& [텍스트 31] & "", "")이었습니다. 희망을 갖고 나는이 새로운 공식으로 이것을 계속할 수있다. 그게 확실하지 않다면 알려주세요. ** (""& & ""이므로 바코드를 스캔 할 수 있습니다.)


IIf에서 위 공식이 잘못되었습니다. 나는 그것을 알아! 'Like'* '' '를 사용하는 것을 잊어 버렸습니다. 감사!

+0

당신은'.Length' 속성을 사용할 수 있습니다. –

답변

2

String()Left()으로 원하는 것을 할 수 있습니다. 귀하의 질문에 대한 업데이트를 바탕으로

product_code = "53HD6J" 
? product_code & String(13, "X") 
53HD6JXXXXXXXXXXXXX 

? Left(product_code & String(13, "X"), 13) 
53HD6JXXXXXXX 

, 나는 당신이 원하는 위치에 텍스트 상자의 컨트롤 소스를 위해 그 방법을 사용할 수있을 것 같아요 : 여기

는 액세스 즉시 창에서 예입니다 "확장 된"제품 코드를 표시하십시오.

이 보고서는 원 제품 코드와 같은 53HD6J가 표시됩니다 txtProduct_code라는 텍스트 상자를 가지고 척. 그리고 두 번째 텍스트 상자에 원하는 수의 X 자 (53HD6JXXXXXXX)가 표시됩니다. 그 두 번째 텍스트 상자의 컨트롤 원본 속성으로

사용이 : 또는

= Left([txtProduct_code] & String(13, "X"), 13) 

, 당신은 그 보고서의 레코드 원본 쿼리의 필드 표현 만들 수 있습니다.

SELECT 
    product_code, 
    Left(product_code & String(13, "X"), 13) AS expanded_product_code 
FROM YourTable; 
+0

이것은 표현식 작성기에 있습니까? 아직 코딩에 익숙하지 않습니다! – Gcbowles

+0

Left와 함께 컨트롤 소스 코드를 사용했는데 작동했습니다. 나는 그것을 IIF 성명서에 넣으려고했지만 현재 나는 어떤 행운을 얻지 못했습니다. 내일 다시 테스트 해 보겠습니다.하지만 도움을 주셔서 감사합니다. – Gcbowles

관련 문제