<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FAccess%2FSQL_Parameter</id>
		<title>VBA/Excel/Access/Word/Access/SQL Parameter - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FAccess%2FSQL_Parameter"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Access/SQL_Parameter&amp;action=history"/>
		<updated>2026-04-06T20:38:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Access/SQL_Parameter&amp;diff=1324&amp;oldid=prev</id>
		<title> в 16:33, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Access/SQL_Parameter&amp;diff=1324&amp;oldid=prev"/>
				<updated>2010-05-26T16:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:33, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Access/SQL_Parameter&amp;diff=1325&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Access/SQL_Parameter&amp;diff=1325&amp;oldid=prev"/>
				<updated>2010-05-26T12:46:50Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Build the SQL statement dynamically==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub MyFirstConnection2()&lt;br /&gt;
    Dim myConnection As ADODB.Connection&lt;br /&gt;
    Dim myRecordset As ADODB.Recordset&lt;br /&gt;
    Dim strSQL As String&lt;br /&gt;
    Dim strSearch As String&lt;br /&gt;
    &lt;br /&gt;
    strSearch = &amp;quot;Lee&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    strSQL = &amp;quot;SELECT FirstName, LastName FROM Employees&amp;quot; &amp;amp; _&lt;br /&gt;
              &amp;quot; WHERE LastName = &amp;quot; &amp;amp; &amp;quot; &amp;quot;&amp;quot; &amp;amp; strSearch &amp;amp; &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    Set myConnection = CurrentProject.Connection&lt;br /&gt;
    &lt;br /&gt;
    Set myRecordset = New ADODB.Recordset&lt;br /&gt;
    myRecordset.Open strSQL, myConnection&lt;br /&gt;
    &lt;br /&gt;
    Do Until myRecordset.EOF&lt;br /&gt;
       Debug.Print myRecordset.Fields(&amp;quot;FirstName&amp;quot;), _&lt;br /&gt;
                   myRecordset.Fields(&amp;quot;LastName&amp;quot;)&lt;br /&gt;
       myRecordset.MoveNext&lt;br /&gt;
    Loop&lt;br /&gt;
    myRecordset.Close&lt;br /&gt;
    myConnection.Close&lt;br /&gt;
    Set myConnection = Nothing&lt;br /&gt;
    Set myRecordset = Nothing&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creat a SQL statement and append parameter as ceriteria==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub FindByPrice2(curPrice As Currency)&lt;br /&gt;
    Dim db As Database&lt;br /&gt;
    Dim rec As Recordset&lt;br /&gt;
    Dim strSQL As String&lt;br /&gt;
    Dim strMatches As String&lt;br /&gt;
    Dim intCounter As Integer&lt;br /&gt;
    strSQL = &amp;quot;SELECT * FROM tblSales WHERE AmountPaid = &amp;quot; &amp;amp; curPrice&lt;br /&gt;
    Set db = CurrentDb()&lt;br /&gt;
    Set rec = db.OpenRecordset(strSQL, dbOpenSnapshot)&lt;br /&gt;
    Do Until rec.EOF&lt;br /&gt;
        Debug.Print rec!SalesID&lt;br /&gt;
        rec.MoveNext&lt;br /&gt;
    Loop&lt;br /&gt;
    intCounter = rec.RecordCount&lt;br /&gt;
    Debug.Print FormatCurrency(curPrice)&lt;br /&gt;
    rec.Close&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating a Parameter Query==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub Create_ParameterQuery()&lt;br /&gt;
   Dim cat As ADOX.Catalog&lt;br /&gt;
   Dim cmd As ADODB.rumand&lt;br /&gt;
   Dim strPath As String&lt;br /&gt;
   Dim strSQL As String&lt;br /&gt;
   Dim strQryName As String&lt;br /&gt;
   On Error GoTo ErrorHandler&lt;br /&gt;
   strPath = CurrentProject.Path &amp;amp; &amp;quot;\mydb.mdb&amp;quot;&lt;br /&gt;
   strSQL = &amp;quot;Parameters [Type Country Name] Text;&amp;quot; &amp;amp; _&lt;br /&gt;
      &amp;quot;SELECT Customers.* FROM Customers WHERE &amp;quot; _&lt;br /&gt;
      &amp;amp; &amp;quot;Customers.Country=[Type Country Name];&amp;quot;&lt;br /&gt;
   strQryName = &amp;quot;Customers by Country&amp;quot;&lt;br /&gt;
   Set cat = New ADOX.Catalog&lt;br /&gt;
   cat.ActiveConnection = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&amp;quot; &amp;amp; strPath&lt;br /&gt;
   Set cmd = New ADODB.rumand&lt;br /&gt;
   cmd.rumandText = strSQL&lt;br /&gt;
   cat.Procedures.Append strQryName, cmd&lt;br /&gt;
   Set cmd = Nothing&lt;br /&gt;
   Set cat = Nothing&lt;br /&gt;
   Exit Sub&lt;br /&gt;
ErrorHandler:&lt;br /&gt;
   If InStr(Err.Description, &amp;quot;already exists&amp;quot;) Then&lt;br /&gt;
      cat.Procedures.Delete strQryName&lt;br /&gt;
      Resume&lt;br /&gt;
   Else&lt;br /&gt;
      MsgBox Err.Number &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Err.Description&lt;br /&gt;
   End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Executing a SQL Statement Containing Parameters==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Sub UpdateWithSQL()&lt;br /&gt;
        Dim cmd As New ADODB.rumand&lt;br /&gt;
        Dim conn As ADODB.Connection&lt;br /&gt;
        Dim prm As ADODB.Parameter&lt;br /&gt;
        Dim strConn As String&lt;br /&gt;
        Dim strSQL As String&lt;br /&gt;
        strConn = &amp;quot;Provider=SQLOLEDB.1;&amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;Data Source=(local); Initial Catalog=NorthWind;&amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;Integrated Security=SSPI&amp;quot;&lt;br /&gt;
        Set conn = New ADODB.Connection&lt;br /&gt;
        conn.Open strConn&lt;br /&gt;
        Set cmd = New ADODB.rumand&lt;br /&gt;
        cmd.rumandText = &amp;quot;UPDATE Products &amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;SET OrderDate = OrderDate, &amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;ShipVia = ShipVia, &amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;Freight = Freight &amp;quot; &amp;amp; _&lt;br /&gt;
            &amp;quot;WHERE OrderID = OrderID&amp;quot;&lt;br /&gt;
    cmd.rumandType = adCmdText&lt;br /&gt;
    cmd.ActiveConnection = conn&lt;br /&gt;
    Set prm = cmd.CreateParameter(&amp;quot;OrderID&amp;quot;, adInteger, adParamInput)&lt;br /&gt;
    cmd.Parameters.Append prm&lt;br /&gt;
    cmd.Parameters(&amp;quot;OrderID&amp;quot;).Value = 1&lt;br /&gt;
    Set prm = cmd.CreateParameter(&amp;quot;OrderDate&amp;quot;, adDate, adParamInput)&lt;br /&gt;
    cmd.Parameters.Append prm&lt;br /&gt;
    cmd.Parameters(&amp;quot;OrderDate&amp;quot;).Value = &amp;quot;10/10/2007&amp;quot;&lt;br /&gt;
    Set prm = cmd.CreateParameter(&amp;quot;ShipVia&amp;quot;, adInteger, adParamInput)&lt;br /&gt;
    cmd.Parameters.Append prm&lt;br /&gt;
    cmd.Parameters(&amp;quot;ShipVia&amp;quot;).Value = 2&lt;br /&gt;
    Set prm = cmd.CreateParameter(&amp;quot;Freight&amp;quot;, adCurrency, adParamInput)&lt;br /&gt;
    cmd.Parameters.Append prm&lt;br /&gt;
    cmd.Parameters(&amp;quot;Freight&amp;quot;).Value = &amp;quot;1.5&amp;quot;&lt;br /&gt;
    cmd.Execute&lt;br /&gt;
    conn.Close&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Running Parameter Queries==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub RunParameterQuery(datStart As Date, datEnd As Date)&lt;br /&gt;
    Dim cmd As ADODB.rumand&lt;br /&gt;
    Dim rst As ADODB.Recordset&lt;br /&gt;
    Set cmd = New ADODB.rumand&lt;br /&gt;
    cmd.ActiveConnection = CurrentProject.Connection&lt;br /&gt;
    cmd.rumandText = &amp;quot;Select * from Employees &amp;quot; &amp;amp; _&lt;br /&gt;
        &amp;quot;Where BirthDate Between ? and ?&amp;quot;&lt;br /&gt;
    cmd.rumandType = adCmdText&lt;br /&gt;
    Set rst = cmd.Execute(Parameters:=Array(datStart, datEnd))&lt;br /&gt;
    Do Until rst.EOF&lt;br /&gt;
        Debug.Print rst(&amp;quot;EmployeeID&amp;quot;), rst(&amp;quot;BirthDate&amp;quot;)&lt;br /&gt;
        rst.MoveNext&lt;br /&gt;
    Loop&lt;br /&gt;
    rst.Close&lt;br /&gt;
    Set rst = Nothing&lt;br /&gt;
    Set cmd = Nothing&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==User InputBox to read SQL statement parameter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub command_parameters()&lt;br /&gt;
  Dim conn As New Connection&lt;br /&gt;
  Dim rec As New Recordset&lt;br /&gt;
  Dim comm As New Command&lt;br /&gt;
  Dim ws As Worksheet&lt;br /&gt;
  Dim i&amp;amp;, countryname$&lt;br /&gt;
  Set ws = ThisWorkbook.Worksheets(&amp;quot;command&amp;quot;)&lt;br /&gt;
  conn.Open &amp;quot;Provider=microsoft.jet.oledb.4.0;&amp;quot; + _&lt;br /&gt;
    &amp;quot;Data Source=&amp;quot; + ThisWorkbook.Path + &amp;quot;\nwind.mdb;&amp;quot;&lt;br /&gt;
  Set comm.ActiveConnection = conn&lt;br /&gt;
  comm.rumandText = &amp;quot;SELECT companyname FROM customers WHERE country = ?&amp;quot;&lt;br /&gt;
  countryname = InputBox(&amp;quot;Please type in a country name (i.e. &amp;quot;germany&amp;quot;).&amp;quot;)&lt;br /&gt;
  comm.Parameters(0) = countryname&lt;br /&gt;
  rec.Open comm&lt;br /&gt;
  ws.[a1].CopyFromRecordset rec&lt;br /&gt;
  rec.Close: conn.Close&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>