כתבתי
אם כן פונקציה זו תספיק כפרמטר:
Public Function SqlParameter(Text As String, Optional AsNumeric As Boolean = False) If AsNumeric Then If IsNumeric(Text) Then SqlParameter = Text Exit Function End If SqlParameter = Replace(Replace(Text, "'", "''"), "", """") End Function
אבל יש לכאורה טעות בקוד - כי רק את סוג המרכאה המקיפה צריך לשכפל בשביל שישאר הטקסט נכון.
אם מקיף ' יש לשכפל רק את ' , אם מקיף " יש לשכפל רק את ".
לכן נראה לי הקוד הזה נכון יותר (זה מה שאני משתמש) - 2 פונקציות:
ולשאילתת פעולה רגילה שאפשר להשתמש בה עם פרמטרים:
Public Sub RunSqlWithParameters(TextSql As String, ParamArray TextParameters() As Variant) On Error GoTo MsgErr Dim MyQuery As QueryDef Dim TextParameter As Variant Dim NumParameter As Integer NumParameter = 0 Set MyQuery = CurrentDb.CreateQueryDef("", TextSql) For Each TextParameter In TextParameters MyQuery.parameters(NumParameter) = TextParameter NumParameter = NumParameter + 1 Next MyQuery.Execute ExitErr: Exit Sub MsgErr: MsgBox Error$ Resume ExitErr End Subאשמח להערות.
(השמות SQL_INSERTSTRING ו Sql_InsertNumeric לא משהו... אשמח לשמוע שם אחר. יש עדיפות שיתחיל ב SQL למציאה קלה...)