Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«VBA для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 95

Автор Π‘Ρ‚ΠΈΠ² Каммингс

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ AddNew для занСсСния Π½ΠΎΠ²ΠΎΠΉ записи Π² Π½Π°Π±ΠΎΡ€ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½ΠΎΠ²ΠΎΠΉ записи. Если Π²Ρ‹ ΡƒΠΆΠ΅ создали Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Recordset ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ rstIng, всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для добавлСния Π½ΠΎΠ²ΠΎΠΉ записи, - это инструкция rst.Ing. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ заполнСнию ΠΏΠΎΠ»Π΅ΠΉ записи (подробности Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ '"ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ… поля" дальшС Π² настоящСй Π³Π»Π°Π²Π΅). Однако, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ значСния ΠΏΠΎΠ»Π΅ΠΉ сразу ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ записи. ΠœΠ΅Ρ‚ΠΎΠ΄ -AddXew позволяСт Π²Π°ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ поля ΠΈ ΠΈΡ… значСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

With rstIng

Array ( "Имя", "Возраст", "Пол"; .

Array("Анна", 42, "Π–")

End With

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ AddNew Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ массивов, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ - ΠΈΡ… значСния. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я использовал Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Array VBA для создания Π½Π° Ρ…ΠΎΠ΄Ρƒ массива, содСрТащСго строковыС значСния. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ массивы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создали Ρ€Π°Π½ΡŒΡˆΠ΅. Π’ любом случаС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ для обСспСчСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ массивов Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Π½ΠΎΠ²ΠΎΠΉ записи ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку ΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля.

Для удалСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Delete.

Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ поля с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊ ΠΆΠ΅ проста, ΠΊΠ°ΠΊ ΠΈ считываниС значСния свойства Value этого поля. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ Π΅Π³ΠΎ индСксному Π½ΠΎΠΌΠ΅Ρ€Ρƒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ свойство Value являСтся свойством ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, поэтому ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ:

If rstYGate.Fields ("Service visits").Value >10

MsgBox "This unitneeds a major over haul!"

End If

strCurrentFieldData = rstYGate.Fields(3)

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ коллСкция Fields являСтся ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Recordset, Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Для обращСния ΠΊ полю просто ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΅Π³ΠΎ имя, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ поставив Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΈΠΌΠ΅Π½Π°, содСрТащиС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹: rstYGatelDate = #5/15/2001#

With rstYGate

intltems =![Oil cans]

End With

ИзмСнСниС (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅) Π΄Π°Π½Π½Ρ‹Ρ… поля ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ADO совсСм нСслоТно. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, - ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ записи, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ (здСсь прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ записСй rstBucket ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΈ содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅):

KithrstBucket

.Fields ( 0).Value = "Love"

.MoveNext

End With

А Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи, ΠΌΠΎΠΆΠ½ΠΎ внСсти измСнСния Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Update. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я воспользовался прСимущСствами, обСспСчиваСмыми стандартным состояниСм ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Fields ΠΈ свойством Value, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

With rstBucket

!Value =8.93

.Update

End With

Как ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ AddNew, ΠΌΠ΅Ρ‚ΠΎΠ΄ UpDate позволяСт Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ значСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Ρ‹ массивов, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

With rstBucket

.Update Array("Имя", "Π—Π²Π°Π½ΠΈΠ΅", "Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Π½Π°ΠΏΠΈΡ‚ΠΎΠΊ"),

Array("Π›ΠΎΠ»Π°", "Младший Π»Π΅ΠΉΡ‚Π΅Π½Π°Π½Ρ‚", "ΠšΠΎΡ„Π΅")

End With

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Do для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с нСсколькими записями Π² Π½Π°Π±ΠΎΡ€Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅;

'ЦикличСскоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ записями Π² Π½Π°Π±ΠΎΡ€Π΅

With rstInPeace

Do Until .EOF

Debug.Print.Fields(0)

.MoveNext

Loop

End With

SetrstInPeace = Nothing

End Sub

ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command

Π’ ADO ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Command прСдставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ инструкция SQL ΠΈΠ»ΠΈ сохранСнная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ источнику Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Commands для получСния записСй ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Recordset, Π° Ρ‚Π°ΠΊΠΆΠ΅ выполнСния Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… записСй. (ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅, выполняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ; ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ записСй, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π°Π½ΡŒΡˆΠ΅ Π² настоящСй Π³Π»Π°Π²Π΅.)

НС ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ, Ссли Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Command с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ источником Π΄Π°Π½Π½Ρ‹Ρ…. БрСдства доступа OLE DB Provider Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ - это запросы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΠ»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQL) ΠΈ сохранили Π² источникС Π΄Π°Π½Π½Ρ‹Ρ…. Π’ качСствС Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΌΠΎΠΆΠ½ΠΎ привСсти запросы Access. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос Access Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСтки, ΠΎΠ½ прСдставляСт собой ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚Π΅, Π²Ρ‹Π±Ρ€Π°Π² прСдставлСниС SQL. Запрос сохраняСтся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… .mdb, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ относится. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ SQL Server, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π₯ранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ использованию, поэтому Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅ имя: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ спокойно Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΠΎ всСх тонкостях опрСдСлСния запроса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π•Ρ‰Π΅ Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ использовании Π² сСти, Ρ‡Π΅ΠΌ эквивалСнтныС инструкции SQL. Однако инструкции SQL для вашСй Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π°, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΡ€ΠΈ нСобходимости ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Настройка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command

Для настройки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command Π²Π°ΠΌ слСдуСт Π½Π°Ρ‡Π°Ρ‚ΡŒ с объявлСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ создания собствСнно ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для связи Π΅Π³ΠΎ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, для опрСдСлСния ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ инструкции SQL ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ для опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Execute ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command для Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструкции обновлСния SQL.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° свойство CommandType, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ adCmdText для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ инструкции SQL источнику Π΄Π°Π½Π½Ρ‹Ρ…:

Dim consecrate As Connection

Dim cmdVBA As Command

Dim prmDate

( Connection...)

Set cmdVBA = New Command

With cmdVBA

.ActiveConnection = consecrate

.CommandText = _ "UPDATE Bicycles SET OnSale = True" _

& "WHERE Category = 4;"

.CommandType = adCmdText

.Execute

End With

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Если для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ поиска), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Parameter, добавляя ΠΈΡ… ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Parameters ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command. ΠŸΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΠ°ΠΊ это всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Command для выполнСния Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π° Π½Π΅ инструкции SQL:

Dim consecrate As Connection

Dim cmdVBA As Command

Dim prmDate

( Connection...)

Set cmdVBA = New Command

With cmdV3A

.ActiveConnection = consecrate

.CommandText = "qryDeleteOldRecords"

.CommandType = adCmdStoredProc ' in Jet, _

adCmdTable

End With

Set prmDate - New Parameter

With prmDate

.Name = "Date"

.Value = InputBox "Enter the cut-off date."

.Type = adDate

.Direction = adParamlnput

End With


With cmdVBA

.iarameters.Append prrnDate ' Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

.Execute β€˜ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

End With

Если Π²Ρ‹ выполняСтС запрос, сохранСнный Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Jet/Access, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ adCmdTable свойства CommandType ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command, Π° Π½Π΅ adCmdStoredProc, относящССся ΠΊ SQL Server ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвСрам Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π±ΠΎΡ‚Π° с SQL

Достаточно просто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ записСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ADO, Π½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ - Π·Π°Π΄Π°Ρ‡Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС. Если Π²Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ прилоТСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°ΠΌ слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ SQL, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с инструмСнтами, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ написаниС инструкций SQL.

Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ SQL

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ инструкций SQL Π² ΠΊΠΎΠ΄ VBA Ρ‡Π΅ΠΌ-Ρ‚ΠΎ сродни ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ письма, содСрТащСго ΠΎΡ‚Ρ€Ρ‹Π²ΠΊΠΈ Π½Π° грСчСском языкС, слоТныС матСматичСскиС вычислСния ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ SQL Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΡƒΠ·ΠΊΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ язык программирования, Ρ‡Π΅ΠΌ Visual Basic, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ VBA-программисты находят Π΅Π³ΠΎ слоТным Π² использовании ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ просто Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Осознавая ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ инструкции SQL, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° вашСм Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠ· списка ΠΏΠΎΠ»Π΅ΠΉ, критСриях поиска ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ дСйствиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ запрос.

ВстроСнный конструктор запросов Access - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ создали ΠΈ протСстировали запрос Access, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ‹Π±ΠΎΡ€Π° для добавлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command Π² ваш ΠΊΠΎΠ΄ VBA для выполнСния запросов.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Command ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запрос ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора запросов, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² свой ΠΊΠΎΠ΄ VBA. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ послСдним ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΌ, сконструируйтС запрос Π² Access ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅; Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

View=SQL View (Π’ΠΈΠ΄=Π Π΅ΠΆΠΈΠΌ SQL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π΅ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ VBA, послС Ρ‡Π΅Π³ΠΎ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π² ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ VBA, которая опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства CcnmandText ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ инструкций SQL ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Command" Ρ€Π°Π½ΡŒΡˆΠ΅ Π² настоящСй Π³Π»Π°Π²Π΅.