שאלה ב-VBA

amirrl

New member
שאלה ב-VBA

אני כבר יום שלם עושה ניסוי וטעיה עם זה, לפעמים עובד, לפעמים לא. בקיצור, נתחיל בקוד-
Dim stDocName As String Dim sql As String Dim X As Long X = LIST.ListIndex sql = "(((Main.Costumer) = " + X + "))" DoCmd.OpenQuery stDocName, acNormal, acReadOnly DoCmd.ApplyFilter , sql​
עכשיו, מאיזושהי סיבה כנראה שהמשתנה X לא מתאים למקומו, כי אני מקבל הודעת TYPE MISMATCH... איך אני גורם למשתנה לקבל את האינדקס של הרשימה LIST ולהיות מוזן כהלכה במקום?
 
סוגי משתנים

X מוגדר כמספר [long] בעוד sql הוא מחרוזת. כאשר אתה משתמש באופרטור + [חיבור] כדי לחבר מחרוזת ומספר, המחשב לא יודע למה כוונתך. לכן, אתה יכול לבחור באחת מ-2 דרכים: 1. להמיר את המספר למחרוזת בצורה יזומה [cast] ע"י שימוש ב-
CStr(X) ואז sql = "(((Main.Costumer) = " + CStr(X) + "))"​
או 2. להשתמש באופרטור & שמחבר מחרוזות [ולא מספרים]. כלומר:
sql = "(((Main.Costumer) = " & X & "))"​
קפיש?
 
למעלה