עזרה באקסס | שגיאה 13 אי התאמת נתונים
-
כתבתי פונקציה ב VBA עם כמה שאילתות
תכלס בדקתי את כל המשפטי SQL באשף והכל עובד ..
הבעיה היא כאשר אני מריץ את זה ב vba הוא נתקל בשגיאה 13 של אי התאמת נתונים
המוזר הוא שאת השאילתה הראשונה הוא עובר בקלות ואילו את השניה הוא נתקע בה (והרי שניהם עובדים באשף של אקסס)
ניסיתי לחפש ברשת משהו מעין זה ומה שניסיתי לא כזה הועיל לי
זה הקודPublic Function vb_status() As Integer Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("SELECT DnoriId,status,DialDate " & _ "FROM DonorManagement " & _ "WHERE (((DonorManagement.status)=5) And ((DonorManagement.DialDate)<Now()))" & _ "ORDER BY DonorManagement.DialDate;") If rs.EOF Then Set rs = CurrentDb.OpenRecordset("SELECT DnoriId, status, HomePhone,Phone1,Phone2 FROM DonorManagement WHERE (((status)=1) AND ((HomePhone) Like " * ")) OR (((status)=1) AND ((Phone1) Like " * ")) OR (((status)=1) AND ((Phone2) Like " * "));") If rs.EOF Then Set rs = CurrentDb.OpenRecordset("SELECT DnoriId,status,DialDate " & _ "FROM DonorManagement " & _ "WHERE (((status)=8) And ((HomePhone) Like " * ")) Or " & _ "(((status)=8) And ((Phone1) Like " * ")) Or " & _ "(((status)=8) And ((Phone2) Like " * "));") Else vb_status = rs!DnoriId End If Else vb_status = rs!DnoriId End If End Function
השגיאה היא בשורה 8
אשמח אם תעירו את היכן תעיתי...
-
@אוריי אמר בעזרה באקסס | שגיאה 13 אי התאמת נתונים:
השגיאה היא בגרשיים:Set rs = CurrentDb.OpenRecordset("SELECT DnoriId, status, HomePhone,Phone1,Phone2 FROM DonorManagement WHERE (((status)=1) AND ((HomePhone) Like " * ")) OR (((status)=1) AND ((Phone1) Like " * ")) OR (((status)=1) AND ((Phone2) Like " * "));")
הקומפיילר לא יודע לפרש אילו גרשיים נמצאים בגוף המחרוזת ואילו גרשיים מציינים את סוף המחרוזת.
את כל הגרשיים הפנימיים תהפוך לגרש יחיד:
Set rs = CurrentDb.OpenRecordset("SELECT DnoriId, status, HomePhone,Phone1,Phone2 FROM DonorManagement WHERE (((status)=1) AND ((HomePhone) Like ' * ')) OR (((status)=1) AND ((Phone1) Like ' * ')) OR (((status)=1) AND ((Phone2) Like ' * '));")
שאלת תם, תמהני, מה התועלת שאתה משיג ב:
Like ' * '
אם להסיר רווחים - תשתמש בפונקציה Trim()
-
@odeddvir אמר בעזרה באקסס | שגיאה 13 אי התאמת נתונים:
שאלת תם, תמהני, מה התועלת שאתה משיג ב:
Like ' * '
אם להסיר רווחים - תשתמש בפונקציה Trim()
א. תודה רבה זה פתר את השגיאה
ב. באמת זה לא עזר לי תכלס טעיתי קצת בקוד אבל ב"ה הסתדר..
הייתי צריך לכתובIs Not Null
במקוםLike ' * '
@OdedDvir הרבה תודה