Məlumat bazasına qeydlərin daxil edilməsi, silinməsi, yenilənməsi. SQL təlimatları ilə tanışlıq; IN, BETWEEN, LIKE operatorlarından GROUP BY bəndindən istifadə edərək SELECT əmrindən istifadə etməklə Access-də sadə SQL sorğularının yaradılması

06.04.2023

Qaydalar: kvadrat mötərizələr tikintinin [isteğe bağlı hissəsini] göstərir. Şaquli bar seçimlər arasında seçimi göstərir (var1|var2). Ellips bir neçə dəfə mümkün təkrar deməkdir - 1 dəfə, 2 dəfə [, …]

SELECT bəyanatı

Verilənlər bazası mühərrikinə göstəriş verir Microsoft Access verilənlər bazasından məlumatları qeydlər toplusu kimi qaytarmaq.

Sintaksis

SEÇİN [ predikat] { * | masa.* | [masa.]sahə 1

[, [masa.]sahə 2 [, ...]]}
FROM cədvəl_ifadəsi [, ...]




SELECT ifadəsi aşağıdakı elementləri ehtiva edir.

Element

Təsvir

Predikat

Aşağıdakı predikatlardan biri: ALL, DISTINCT, DISTINCTROW və ya TOP. Qaytarılan qeydlərin sayını məhdudlaşdırmaq üçün predikatlar istifadə olunur. Əgər predikat verilməyibsə, standart ALL-dir.

Bütün sahələrin göstərilən cədvəldən və ya cədvəllərdən seçildiyini göstərir

Cədvəl

Sahələrindən qeydlərin seçildiyi cədvəlin adı

sahə 1, sahə 2

Alınacaq məlumatları ehtiva edən sahələrin adları. Birdən çox sahə göstərilibsə, məlumatlar adlarının sadalandığı ardıcıllıqla alınacaq

ləqəb1, ləqəb2

Orijinal sütun adları əvəzinə sütun başlıqları kimi istifadə edilən adlar masalar

cədvəl_ifadəsi

Alınacaq məlumatları ehtiva edən bir və ya bir neçə cədvəl adı.

xarici_verilənlər bazası

Komponentdə göstərilən cədvəlləri ehtiva edən verilənlər bazasının adı cədvəl_ifadəsi cari verilənlər bazasında olmadıqda

Qeydlər

Bu əməliyyatı yerinə yetirmək üçün Microsoft Access verilənlər bazası mühərriki müəyyən edilmiş cədvəl(lər)də axtarış aparır, istədiyiniz sütunları alır, göstərilən şərtlərə cavab verən sətirləri seçir və nəticədə yaranan sətirləri müəyyən edilmiş qaydada çeşidləyir və ya qruplaşdırır.

SELECT ifadələri verilənlər bazası məlumatlarını dəyişmir.

SELECT ifadəsi adətən SQL ifadəsinin ilk sözüdür (SQL ifadəsi (sətir). SELECT, UPDATE və ya DELETE kimi SQL əmrini təyin edən və HARADA və ya SİPARİŞ BY kimi bəndləri ehtiva edən ifadə. SQL ifadələri/ sətirlər adətən sorğularda və statistik funksiyalarda istifadə olunur.). Əksər SQL ifadələri ya SELECT ifadələri, ya da SELECT...INTO ifadələridir.

SELECT ifadəsi üçün minimum sintaksis aşağıdakı kimidir:

SEÇİN sahələr FROM masa

Cədvəldəki bütün sahələri seçmək üçün ulduzdan (*) istifadə edə bilərsiniz. Aşağıdakı nümunə İşçilər cədvəlindəki bütün sahələri seçir.

İşçilərdən * SEÇİN;

Əgər sahə adı FROM bəndində bir neçə cədvələ daxil edilibsə, ondan əvvəl cədvəlin adı və ifadəsi yazın. «.» (nöqtə). Aşağıdakı nümunədə "Şöbə" sahəsi "İşçilər" və "Nəzarətçilər" cədvəllərində mövcuddur. SQL ifadəsi İşçilər cədvəlindən şöbələri və Nəzarətçilər cədvəlindən nəzarətçi adlarını seçir.

İşçiləri SEÇİN. Şöbə, müdirlər. İcraçı Adı İşçilərdən DAXİLİ MÜDÜRLƏRƏ QOŞULUN HARADA İşçilər. Şöbə = Menecerlər. Şöbə;

RecordSet obyekti yaratdığınız zaman, cədvəl sahəsinin adı Microsoft Access verilənlər bazası mühərriki tərəfindən obyektdəki "Field" obyektinin adı kimi istifadə olunur. RecordSet. Sahənin adının dəyişdirilməsinə ehtiyac varsa və ya sahəni yaradan ifadə tərəfindən təmin edilmirsə, qorunan sözdən istifadə edin (Reserved word. Dilin elementi olan söz, məsələn Visual Basic. Qorunan sözlərə təlimatların adları, daxili funksiyalar və məlumat növləri, metodlar, operatorlar və obyektlər daxildir.) AS. Aşağıdakı nümunə qaytarılmış obyekti adlandırmaq üçün "Gün" başlığının necə istifadə edildiyini göstərir Sahə alınan obyektdə RecordSet.

İşçilərdən Ad GÜNÜ GÜN KİMİ SEÇİN;

Birmənalı olmayan və ya eyni obyekt adlarını qaytaran ümumi funksiyalar və ya sorğularla işləyərkən Sahə, fərqli obyekt adı yaratmaq üçün AS bəndindən istifadə etməlisiniz Sahə. Aşağıdakı nümunədə qaytarılan obyekt Sahə alınan obyektdə RecordSet“Census” adı verilir.

İşçilərin siyahıyaalınması kimi SAYI(İşçi Kodu) SEÇİN;

SELECT ifadəsi ilə işləyərkən, əldə edilən məlumatları daha da məhdudlaşdırmaq və təşkil etmək üçün əlavə bəndlərdən istifadə edə bilərsiniz. əlavə informasiya istifadə etdiyiniz bənd üçün yardım mövzusuna baxın.

FROM bəndi

SELECT ifadəsində sadalanan sahələri ehtiva edən cədvəlləri və sorğuları təyin edir.

Sintaksis

SEÇİN sahə_siyahısı
FROM cədvəl_ifadəsi

FROM bəndini ehtiva edən SELECT ifadəsi aşağıdakı elementləri ehtiva edir:

Element

Təsvir

sahə_siyahısı

cədvəl_ifadəsi

Bir və ya bir neçə cədvəli müəyyən edən ifadə - məlumat mənbələri. İfadə cədvəl adı, saxlanılan sorğu adı və ya INNER JOIN, LEFT JOIN və ya RIGHT JOIN operatoru ilə qurulmuş nəticə ifadəsi ola bilər.

xarici_verilənlər bazası

Göstərilən bütün cədvəlləri ehtiva edən xarici verilənlər bazasına tam yol cədvəl_ifadəsi

Qeydlər


SELECT ifadəsindən sonra FROM bəndinin olması tələb olunur.

Cədvəllərin sıralanma ardıcıllığı cədvəl_ifadəsi fərq etməz.

Əlaqəli cədvəllərdən istifadə (Əlaqəli cədvəl. Açıq verilənlər bazasının bir hissəsi olmayan, lakin Microsoft Access-dən əldə edilə bilən faylda saxlanılan cədvəl. İstifadəçi əlaqəli cədvələ qeydləri əlavə edə, silə və dəyişə bilər, lakin onun strukturunu dəyişə bilməz. .) IN bəndinin əvəzinə məlumatların çıxarılması prosesini edə bilərsiniz xarici baza məlumatları daha sadə və səmərəli şəkildə.

Aşağıdakı nümunə İşçilər cədvəlindən məlumatların necə alınacağını göstərir.

SEÇ Soyadı, Ad

İşçilərdən;

SQL sorğuları üçün seçilmiş qeydləri göstərir ( SQL dili(Strukturlaşdırılmış Sorğu Dili). Əlaqəli DBMS-lərdə verilənlərə daxil olmaq, sorğulamaq, yeniləmək və idarə etmək üçün geniş istifadə olunan strukturlaşdırılmış sorğu və verilənlər bazası proqramlaşdırma dili.

Sintaksis

SEÇ ]]
FROM masa

Bu predikatları ehtiva edən SELECT ifadəsi aşağıdakı komponentləri ehtiva edir:

Komponent

Təsvir

Heç bir predikatlar daxil edilmədikdə nəzərdə tutulur. Microsoft Access verilənlər bazası mühərriki SQL ifadəsinin şərtlərinə uyğun gələn bütün qeydləri seçir (SQL ifadəsi (sətir). SEÇ, YENİLƏNİB və ya SİL kimi SQL əmrini təyin edən və HARADA və ya SİPARİŞ BY kimi bəndləri ehtiva edən ifadə. SQL ifadələri/sətirləri adətən sorğularda və statistik funksiyalarda istifadə olunur). Aşağıdakı iki eyni nümunə İşçilər cədvəlindən bütün qeydlərin necə qaytarılacağını göstərir.

İşçilərdən

EmployeeCode ilə SİFARİŞ;

İşçilərdən

EmployeeCode ilə SİFARİŞ;

Seçilmiş sahələrdə dublikat məlumatları ehtiva edən qeydləri istisna edir. Sorğu nəticələri yalnız daxildir unikal dəyərlər SELECT ifadəsində sadalanan sahələrin hər biri. Məsələn, İşçilər cədvəlində sadalanan bəzi işçilərin soyadı eyni ola bilər. Soyad sahəsində iki qeyddə "İvanov" soyadı varsa, aşağıdakı SQL ifadəsi "İvanov" soyadını ehtiva edən yalnız bir qeydi qaytarır.

FƏRQLİ Soyad SEÇİN

DISTINCT komponenti buraxılıbsa, sorğu hər iki qeydi "İvanov" soyadı ilə qaytarır.

SELECT bəndində bir neçə sahə varsa, bütün sahə dəyərlərinin birləşməsi sorğu nəticələrinə yalnız həmin qeyd üçün unikal olduqda daxil edilir.

DISTINCT komponentindən istifadə edən sorğunun nəticələri digər istifadəçilər tərəfindən edilən sonrakı dəyişiklikləri əks etdirmək üçün yenilənmir.

Eyni verilənləri olan ayrı-ayrı sahələri ehtiva etməkdənsə, bütövlükdə təkrarlanan qeydlərdən məlumatları istisna edir. Tutaq ki, “Müştəri kodu” sahəsindən istifadə edərək “Müştərilər” və “Sifarişlər” cədvəllərini birləşdirən sorğu yaradılıb. Müştərilər cədvəlində dublikat Müştəri ID sahələri yoxdur, lakin onlar Sifarişlər cədvəlində mövcuddur, çünki hər bir müştərinin bir neçə sifarişi ola bilər. Aşağıdakı SQL ifadəsi, ən azı bir sifariş vermiş təşkilatları siyahıya almaq üçün DISTINCTROW komponentindən bu sifarişlərin təfərrüatlarını qeyd etmədən necə istifadə olunacağını göstərir.

Müştərilərdən DAXİLİ QOŞULUŞ Sifarişlərindən FƏRQLİ Mövzu SEÇİN

ON Müştərilər. CustomerId = Sifarişlər. Müştəri kodu

Başlığa görə SİFARİŞ;

DISTINCTROW komponenti buraxılıbsa, sorğu bir neçə dəfə sifariş verən hər bir təşkilat üçün çoxlu sıra ilə nəticələnir.

DISTINCTROW komponenti yalnız sorğuda istifadə olunan bəzi cədvəllərdən sahələr seçildikdə qüvvəyə minir. Əgər sorğuda yalnız bir cədvəl varsa və ya bütün cədvəllərdən sahələr götürülürsə, DISTINCTROW komponenti nəzərə alınmır.

TOP n

İlk və ya arasında olan qeydlərin müəyyən sayını qaytarır son girişlər SİPARİŞ BY bəndi ilə müəyyən edilmiş diapazon. Tutaq ki, siz 1994-cü ilin ən yaxşı 25 şagirdinin adlarını göstərmək istəyirsiniz.

Ad Soyad

HARADA Məzuniyyət ili = 2003

GradePointAverage DESC ilə SİFARİŞ;

ORDER BY bəndini daxil etməsəniz, sorğu Tələbələr cədvəlindən WHERE bəndinə cavab verən təsadüfi 25 qeyd dəstini qaytaracaq.

TOP predikatı bərabər dəyərlər arasında seçimi nəzərdə tutmur. Əvvəlki nümunədəki 25 və 26-cı qeydlər eyni GPA-ya malik olsaydı, sorğu 26 qeyd qaytarardı.

Siz həmçinin SİPARİŞ BY bəndi ilə müəyyən edilmiş diapazonda ilk və ya sonuncu qeydlərin bəzi faizini əldə etmək üçün PERCENT ehtiyat sözündən istifadə edə bilərsiniz. Tutaq ki, ilk 25-lik əvəzinə, məzun sinifindəki tələbələrin ən aşağı 10%-ni göstərmək istəyirsiniz.

TOP 10 FAİZİ SEÇİN

Ad Soyad

HARADA Məzuniyyət ili = 2003

GradePointAverage ASC tərəfindən SİFARİŞ;

ASC predikatı diapazonun aşağı hissəsindən dəyərlərin çıxışını təyin edir. TOP predikatından sonra gələn dəyər Integer tipli dəyər olmalıdır (Tam məlumat növü. Tam ədədlərin dəyərlərini saxlamaq üçün istifadə olunan əsas məlumat növü. Dəyişən növü Tam ədəd -32768 - 32767 diapazonunda 64 bitlik (8 bayt) ədəd kimi saxlanılır.) işarəsiz.

TOP predikatı sorğunun yenilənməsinə təsir etmir.

masa

Qeydlərin götürüldüyü cədvəlin adı.

həmçinin bax

SELECT bəyanatı

FROM bəndi

WHERE bəndi

FROM bəndində sadalanan cədvəllərdən hansı qeydlərin SELECT, UPDATE və ya DELETE ifadələri ilə işləndiyini müəyyən edir.

Sintaksis

SEÇİN sahə_siyahısı
FROM cədvəl_ifadəsi
HARADA seçim_şərtləri

WHERE bəndini ehtiva edən SELECT ifadəsi aşağıdakı hissələri ehtiva edir.

Hissə

Təsvir

sahə_siyahısı

İstənilən ləqəblərlə birlikdə götürülən sahənin və ya sahələrin adı (Alias ​​(SQL). İfadədəki cədvəl və ya sahə üçün alternativ ad. Təxəllüslər adətən daha qısa cədvəl və ya sahə adları kimi sonrakı istinadların asanlığı üçün istifadə olunur. proqramlar, qeyri-müəyyən istinadların qarşısını almaq və sorğu nəticələrini göstərərkən daha təsviri adlar əldə etmək üçün.), predikatlar (ALL, DISTINCT, DISTINCTROW və ya TOP) və ya SELECT ifadəsinin hər hansı digər parametrləri ilə.

cədvəl_ifadəsi

Məlumatın alındığı cədvəl və ya cədvəllərin adı.

seçim_şərtləri

İfadə (İfadə. Riyazi və məntiqi operatorların, sabitlərin, funksiyaların, sahə adlarının, idarəetmə vasitələrinin və vahid qiymətlə nəticələnən xassələrin kombinasiyası. İfadə hesablamalar apara, mətni emal edə və ya məlumatları təsdiqləyə bilər.) daxil edilmiş qeydlərə uyğun olmalıdır. sorğu nəticələrində.

Qeydlər

Microsoft Access verilənlər bazası mühərriki WHERE bəndində sadalanan şərtlərə cavab verən qeydləri seçir. WHERE bəndi göstərilməyibsə, sorğu cədvəldəki bütün sətirləri qaytarır. Əgər sorğu bir neçə cədvəli təyin edirsə, lakin WHERE və ya JOIN bəndini göstərmirsə, sorğu Dekart məhsulu yaradır (Kartezian məhsulu. İki və ya daha çox cədvələ istinad edən FROM bəndinə malik olan SQL SELECT ifadəsinin icrasının nəticəsidir və HARƏDƏ və ya JOIN ifadəsi yoxdur. Qoşulma üsulunu təyin edən JOIN bəndi.) cədvəlləri.

WHERE bəndi tələb olunmur, lakin istifadə olunarsa, FROM bəndinə əməl etməlidir. Məsələn, siz satış departamentindən bütün işçiləri (HERE Departamenti = "Satış") və ya 18-30 yaş arası (HARƏDƏ Yaş 18-30) arasında olan müştəriləri seçə bilərsiniz.

Birdən çox cədvəldə SQL birləşmə əməliyyatı üçün JOIN bəndi istifadə edilmirsə, nəticədə obyekt Rekord dəsti yeniləmək mümkün olmayacaq.

WHERE bəndi HAVING bəndinə bənzəyir və seçilmiş qeydləri müəyyənləşdirir. Qeydlər GROUP BY bəndinə görə qruplaşdırıldıqdan sonra HAVING bəndi də göstəriləcək qeydi müəyyənləşdirir.

WHERE bəndi GROUP BY bəndindən istifadə edərək qruplaşdırılmasına ehtiyac olmayan qeydləri istisna etmək üçün istifadə olunur.

SQL ifadəsi ilə hansı qeydlərin qaytarıldığını müəyyən etmək üçün müxtəlif ifadələrdən istifadə edin. Məsələn, aşağıdakı SQL ifadəsi maaşı RUR-dan çox olan bütün işçiləri seçir.

SEÇİN Soyadı, Əmək haqqı HARDADA İşçilərdən Əmək haqqı > 21000;

WHERE bəndində məntiqi operatorlar tərəfindən birləşdirilən 40-a qədər ifadə ola bilər (məsələn, YA).

Boşluq və ya durğu işarələrindən ibarət sahə adını daxil etsəniz, onu kvadrat mötərizə () içərisinə almalısınız. Məsələn, müştəri təfərrüatları cədvəlində xüsusi müştərilər haqqında məlumat ola bilər.

SEÇİN [Müştərinin sevimli restoranı]

Arqumentin təyin edilməsi seçim_şərtləri, tarix hərfi (Tarix hərfi. Rəqəm işarələri (#) ilə əhatə olunmuş etibarlı formatda simvolların istənilən ardıcıllığı. Etibarlı formatlar Dil və Standartlar parametrlərində göstərilən tarix formatıdır və universal format tarixlər.) Microsoft Access verilənlər bazası mühərrikinin qeyri-ABŞ versiyasından istifadə etsəniz belə, ABŞ formatında təqdim edilməlidir. Məsələn, “10 may 1996-cı il” tarixi Böyük Britaniyada 10/5/96, Rusiyada isə 05/10/1996 kimi yazılır. Aşağıdakı nümunələrdə göstərildiyi kimi, tarix hərflərini rəqəm işarələrinə (#) əlavə etməyi unutmayın.

Böyük Britaniyanın verilənlər bazasında 10 may 1996-cı il tarixinə aid qeydləri tapmaq üçün istifadə edin aşağıdakı təlimatlar SQL:

Sifarişlərdən * SEÇİN Çatdırılma Tarixi = #10.05.1996#;

Funksiyadan da istifadə edə bilərsiniz DateValue, beynəlxalq parametrlər dəstinin tanınması Microsoft Windows®. Məsələn, Rusiya üçün bu kodu istifadə edin:

Göndərilmə tarixi = DateValue ("05/10/1996");

Və aşağıdakı kod Böyük Britaniya üçündir:

Göndərmə tarixi = DateValue("10/5/96");

Qeyd. Seçim meyarları sətirində göstərilən sütun GUID (Replika ID (GUID) növündədirsə. Replikasiyanı unikal şəkildə müəyyən etmək üçün Microsoft Access verilənlər bazasında 16 baytlıq sahə istifadə olunur. GUID-lər replikaları, replika dəstlərini, cədvəlləri, qeydləri və digər obyektlər Microsoft Access verilənlər bazasında GUID kodları replika kodları adlanır.), seçim şərtləri bir qədər fərqli sintaksisdən istifadə edir.

HARADA ReplicaID = (GUID (AB-CDEF0ABCDEF))

İç-içə mötərizələrin və defislərin düzgün yerləşdirildiyinə əmin olun.

Mənbə səhifəsi: http://office. /ru-ru/access/HA.aspx? pid=CH

GROUP BY bəndi

Göstərilən sahələr siyahısında olan eyni dəyərləri olan qeydləri bir qeyddə birləşdirir. SQL aqreqasiya funksiyası SELECT ifadəsinə daxil edilərsə, hər bir qeyd üçün xülasə dəyəri yaradılır, məsələn: məbləğ və ya saymaq.

Sintaksis

SEÇİN sahə_siyahısı
FROM masa
HARADA seçim_şərti

GROUP BY bəndini ehtiva edən SELECT ifadəsinə aşağıdakı elementlər daxildir:

Element

Təsvir

sahə_siyahısı

İstənilən ləqəblərlə birlikdə götürülən sahələrin adları (Alias ​​(SQL). İfadədəki cədvəl və ya sahə üçün alternativ ad. Təxəllüslər adətən proqramlarda sonrakı istinadların asanlığı üçün daha qısa cədvəl və ya sahə adları kimi istifadə olunur, birmənalı olmayan istinadların qarşısını almaq və sorğu nəticələrini göstərərkən daha informativ adlar əldə etmək üçün.) və SQL statistik funksiyaları, predikatlar (ALL, DISTINCT, DISTINCTROW və ya TOP) və ya digər SELECT ifadəsi parametrləri

masa

seçim_şərtləri

Seçim şərti. Əgər ifadədə WHERE bəndi varsa, o qeydlərə tətbiq edildikdən sonra dəyərlər Microsoft Access verilənlər bazası mühərriki tərəfindən qruplaşdırılacaq.

qrup_alan_siyahısı

qrup_alan_siyahısı

Qeydlər

GROUP BY bəndi isteğe bağlıdır.

SQL statistik funksiyaları SELECT ifadəsinə daxil edilmirsə, xülasə dəyərləri hesablanmır.

GROUP BY sahə dəyərləri Null (Null. Sahəyə daxil edilə bilən və ya çatışmayan və ya naməlum məlumatları göstərmək üçün ifadələrdə və sorğularda istifadə edilə bilən dəyər. Visual Basic-də açar söz Null Null dəyərini təyin edir. Bəzi sahələr, məsələn, əsas açar sahələri, Null dəyərləri ehtiva edə bilməz.) qruplaşdırılır və buraxılmır. Bununla belə, dəyərlər Sıfır SQL statistik funksiyalarının heç biri tərəfindən qiymətləndirilmir.

WHERE bəndi qruplaşdırılmasına ehtiyac olmayan sətirləri istisna etmək üçün istifadə olunur. HAVING bəndi qruplaşdırıldıqdan sonra qeydləri süzmək üçün istifadə olunur.

GROUP BY sahə siyahısından Memo məlumat növü (MEMO Sahəsi məlumat növü. Microsoft Access verilənlər bazasındakı sahə məlumat növü. MEMO sahəsində 65535 simvola qədər ola bilər.) və ya OLE Obyekti (OLE Obyekt Sahəsi məlumat növü) olmayan sahələr ) Microsoft Access verilənlər bazası ilə əlaqəli və ya daxil edilmiş digər proqramlardan obyektləri saxlamaq üçün istifadə edilən sahə məlumat növü.) sahə SELECT ifadəsinə daxil olmasa belə, FROM bəndində göstərilən istənilən cədvəldə istənilən sahəyə istinad edə bilər. Bunun üçün SELECT ifadəsində ən azı bir SQL statistik funksiyasının olması kifayətdir. Microsoft Access verilənlər bazası mühərriki MEMO Sahəsi və ya OLE Obyekt məlumatlarını ehtiva edən sahələr üzrə qruplaşdırmağa icazə vermir.

SELECT sahə siyahısındakı bütün sahələr ya GROUP BY bəndində yer almalı, ya da SQL toplama funksiyasının arqumentləri olmalıdır.

həmçinin bax

SELECT bəyanatı

SELECT...INTO bəyanatı

ALL, DISTINCT, DISTINCTROW, TOP predikatları

FROM bəndi

TƏKLİF OLAN

ORDER BY bəndi

WHERE bəndi

SQL statistik funksiyaları

Mənbə səhifəsi: http://office. /ru-ru/access/HA.aspx? pid=CH

TƏKLİF OLAN

GROUP BY bəndi ilə SELECT ifadəsində görünməli olan qruplaşdırılmış qeydləri müəyyən edir. Qeydlər GROUP BY bəndinə görə qruplaşdırıldıqdan sonra HAVING bəndi onun şərtlərinə cavab verənləri göstərəcək.

Sintaksis

SEÇİN sahə_siyahısı
FROM masa
HARADA seçim_şərtləri
GROUP BY qrup_alan_siyahısı

HAVING bəndini ehtiva edən SELECT ifadəsi aşağıdakı elementləri ehtiva edir:

Element

Təsvir

sahə_siyahısı

İstənilən ləqəblərlə birlikdə yüklənən sahələrin adları (Alias ​​(SQL). İfadədəki cədvəl və ya sahə üçün alternativ ad. Təxəllüslər adətən proqramlarda sonrakı istinadların asanlığı üçün daha qısa cədvəl və ya sahə adları kimi istifadə olunur, birmənalı olmayan istinadların qarşısını almaq və sorğu nəticələrini göstərərkən daha informativ adlar əldə etmək üçün.) və SQL statistik funksiyaları, predikatlar (ALL, DISTINCT, DISTINCTROW və ya TOP) və ya SELECT ifadəsinin digər parametrləri ilə.

masa

Qeydlərin yükləndiyi cədvəlin adı

seçim_şərti

Seçim şərti. Əgər ifadədə WHERE bəndi varsa, Microsoft Access verilənlər bazası mühərriki qeydlərə tətbiq edildikdən sonra dəyərləri qruplaşdıracaq.

qrup_alan_siyahısı

Qeydləri qruplaşdırmaq üçün istifadə edilən sahələrin adları (10-a qədər). Adların sırası qrup_alan_siyahısı qruplaşma səviyyəsini müəyyən edir - ən yüksəkdən aşağıya

qrup_şərti

Göstəriləcək qeydləri təyin edən ifadə

Qeydlər

HAVING bəndi isteğe bağlıdır.

HAVING bəndi qeydlərin seçimini təyin edən WHERE bəndinə bənzəyir. Qeydləri GROUP BY bəndi ilə qruplaşdırdıqdan sonra HAVING bəndi göstəriləcək qeydləri müəyyənləşdirir.

Növ kodunu seçin,

Məbləğ(InStock)

Məhsullardan

Növ koduna görə qruplaşdırın

Cəmi (InStock) > 100 OLMAQ Və "TEL*" kimi;

HAVING bəndində məntiqi operatorlar tərəfindən əlaqələndirilmiş 40-a qədər ifadə ola bilər Və ya.

Mənbə səhifəsi: http://office. /ru-ru/access/HA.aspx? pid=CH

ORDER BY bəndi

Sorğu ilə qaytarılan qeydləri göstərilən sahə(lər)in dəyərlərinin artan və ya azalan qaydada çeşidləyir.

Sintaksis

SEÇİN sahə_siyahısı
FROM masa
HARADA seçim_şərti
[, sahə 2 ][, ...]]]

ORDER BY bəndini ehtiva edən SELECT ifadəsi aşağıdakı elementləri ehtiva edir.

Element

Təsvir

sahə_siyahısı

İstənilən ləqəblərlə birlikdə götürülən sahələrin adları (Alias ​​(SQL). İfadədəki cədvəl və ya sahə üçün alternativ ad. Təxəllüslər adətən proqramlarda sonrakı istinadların asanlığı üçün daha qısa cədvəl və ya sahə adları kimi istifadə olunur, birmənalı olmayan istinadların qarşısını almaq və sorğu nəticələrini göstərərkən daha informativ adlar əldə etmək üçün.) və SQL statistik funksiyaları, predikatlar (ALL, DISTINCT, DISTINCTROW və ya TOP) və ya SELECT ifadəsinin digər parametrləri ilə.

masa

Qeydlərin götürüldüyü cədvəlin adı

seçim_şərtləri

Seçim şərtləri. Əgər ifadədə WHERE bəndi varsa, o qeydlərə tətbiq edildikdən sonra Microsoft Access verilənlər bazası mühərriki qeydlərin dəyərlərini sifariş edəcək

sahə 1, sahə 2

Qeydlərin çeşidləndiyi sahələrin adları.

Qeydlər

ORDER BY bəndi isteğe bağlıdır. Məlumatları çeşidlənmiş formada göstərmək lazım olduqda istifadə edilməlidir.

Varsayılan çeşidləmə sırasıdır. Verilənləri onun dəyərlərinə və növünə görə tənzimləmək üsulu əlifba sırası ilə sıralana bilər ədədi dəyərlər və ya tarixə görə. Çeşidləmə sırası artan (0-dan 100-ə, A-dan Z-yə) və ya azalan (100-dən 0-a, Z-dən A-ya qədər) ola bilər (A-dan Z-yə, 0-dan 9-a). Aşağıdakı nümunələr işçi adlarının soyadına görə çeşidlənməsini nümayiş etdirir.

SEÇ Soyadı, Ad

İşçilərdən

Soyadı ilə SİFARİŞ;

SEÇ Soyadı, Ad

İşçilərdən

SİFARİŞ BY Soyad ASC;

Sahələri azalan qaydada çeşidləmək üçün (Z-dən A, 9-dan 0-a qədər) hər bir sahənin adına ayrılmış DESC sözünü əlavə edin. Aşağıdakı nümunə işçilərin maaşlarına əsasən azalan qaydada çeşidlənməni nümayiş etdirir.

SEÇİN Soyadı, Əmək haqqı

İşçilərdən

SİFARİŞ İLƏ Əmək haqqı DESC, Soyadı;

SİFARİŞ BY bəndində MEMO Sahəsi (Yaddaş Sahəsi məlumat növü. Microsoft Access verilənlər bazasındakı sahə məlumat növü. MEMO sahəsində 65.535 simvola qədər ola bilər.) və ya OLE Obyekt Sahəsi (OLE Obyekti) tipli məlumatları ehtiva edən sahələri göstərsəniz Sahə məlumat növü " Microsoft Access verilənlər bazasında əlaqəli və ya daxil edilmiş digər proqramlardan obyektləri saxlamaq üçün istifadə edilən sahə məlumat növü.), bu xəta yaradacaq. Microsoft Access verilənlər bazası mühərriki bu sahə növlərini çeşidləyə bilməz.

ORDER BY bəndi adətən SQL ifadəsindəki son bənddir (SQL ifadəsi (sətir). SELECT, UPDATE və ya DELETE kimi SQL əmrini təyin edən və HARADA və ya ORDER BY kimi bəndləri ehtiva edən ifadə. SQL ifadələri. /sətirlər adətən sorğularda və statistik funksiyalarda istifadə olunur.).

ORDER BY bəndinə əlavə sahələr daxil edə bilərsiniz. Qeydlər əvvəlcə SİPARİŞ BY bəndində göstərilən sahəyə görə sıralanır. Birinci sahədə eyni dəyərlərə malik qeydlər daha sonra ikincinin göstərdiyi sahəyə görə sıralanır və s.
həmçinin bax

SELECT bəyanatı

SELECT...INTO bəyanatı

ALL, DISTINCT, DISTINCTROW, TOP predikatları

FROM bəndi

GROUP BY bəndi

TƏKLİF OLAN

WHERE bəndi

SQL statistik funksiyaları

Mənbə səhifəsi: http://office. /ru-ru/access/HA.aspx? pid=CH

INNER JOIN əməliyyatı

Bu cədvəllərin birləşdirici sahələrində eyni dəyərlər varsa, iki cədvəldən qeydləri birləşdirir.

Sintaksis

FROM Cədvəl 1 DAXİLİ QOŞULUN cədvəl 2 ON Cədvəl 1.sahə 1 müqayisə_operator cədvəli2.sahə 2

INNER JOIN əməliyyatı aşağıdakı elementlərdən ibarətdir:

Element

Təsvir

Cədvəl 1, cədvəl 2

Qoşulacaq qeydləri ehtiva edən cədvəllərin adları

sahə 1, sahə 2

Əlaqələndiriləcək sahələrin adları. Qeyri-rəqəmli sahələr eyni məlumat tipində olmalıdır (Məlumat Tipi. Sahənin ehtiva edə biləcəyi verilənlərin tipini təyin edən sahə xarakteristikası. Məlumat növlərinə aşağıdakılar daxildir: Boolean, Tam, Uzun, Valyuta, Tək, Cüt, Tarix, Sətir, və Variant (standart).) və eyni tipli məlumatları ehtiva edir. Lakin bu sahələrin adları fərqli ola bilər

müqayisə_operatoru

İstənilən müqayisə operatoru: (=,<, >, <=, >= və ya<>)

SELECT bəyanatı Microsoft Access verilənlər bazası mühərrikinə verilənlər bazasından məlumatları qeydlər dəsti kimi qaytarmağı tapşırır.

Sintaksis

SEÇİN [ predikat] { * | masa.* | [masa.]sahə 1 [, [masa.]sahə 2 [, ...]]}
FROM cədvəl_ifadəsi [, ...]




SELECT ifadəsi aşağıdakı elementləri ehtiva edir.

Element

Təsvir

predikat

Aşağıdakı predikatlardan biri: ALL, DISTINCT, DISTINCTROW və ya TOP. Qaytarılan qeydlərin sayını məhdudlaşdırmaq üçün predikatlar istifadə olunur. Əgər predikat verilməyibsə, standart ALL-dir.

Bütün sahələrin göstərilən cədvəldən və ya cədvəllərdən seçildiyini göstərir.

masa

Seçilmiş qeydləri olan sahələri ehtiva edən cədvəlin adı.

sahə 1, sahə 2

Alınacaq məlumatları ehtiva edən sahələrin adları. Çoxsaylı sahələr göstərilibsə, məlumatlar adlarının qeyd olunduğu ardıcıllıqla alınacaq.

ləqəb1, ləqəb2

Orijinal sütun adları əvəzinə sütun başlıqları kimi istifadə edilən adlar masa.

cədvəl_ifadəsi

Alınacaq məlumatları ehtiva edən bir və ya bir neçə cədvəl adı.

xarici_verilənlər bazası

Komponentdə göstərilən cədvəlləri ehtiva edən verilənlər bazasının adı cədvəl_ifadəsi, əgər onlar cari verilənlər bazasında deyillərsə.

Qeydlər.

Bu əməliyyatı yerinə yetirmək üçün Microsoft Access verilənlər bazası mühərriki müəyyən edilmiş cədvəl və ya cədvəlləri axtarır, göstərilən sütunları alır, şərtə cavab verən sətirləri seçir və nəticədə sətirləri müəyyən edilmiş ardıcıllıqla çeşidləyir.

SELECT ifadələri verilənlər bazasındakı məlumatları dəyişdirmir.

SELECT adətən SQL ifadəsindəki ilk sözdür. SELECT və SELECT...INTO ən çox yayılmış SQL ifadələridir.

SELECT ifadəsi üçün minimum sintaksis aşağıdakı kimidir:

SEÇİN sahələr FROM masa

Cədvəldəki bütün sahələri seçmək üçün ulduzdan (*) istifadə edə bilərsiniz. Aşağıdakı nümunə göstərir ki, İşçilər cədvəlində bütün sahələr seçilmişdir.

İşçilərdən * SEÇİN;

Əgər sahə adı FROM bəndində bir neçə cədvələ daxil edilibsə, ondan əvvəl cədvəlin adı və ifadəsi yazın. . (nöqtə). Aşağıdakı nümunədə "Şöbə" sahəsi bir anda iki cədvəldə görünür: "İşçilər" və "Menecerlər". Siz İşçilər cədvəlindən şöbələri və İdarəçilər cədvəlindən rəhbər adları seçmək üçün SQL ifadəsindən istifadə edə bilərsiniz.

İşçiləri SEÇİN.Şöbə, Nəzarətçilər.SupvAdı İşçilərdən DAXİLİ QOŞULUN.

RecordSet obyekti yaradıldıqda, cədvəl sahəsinin adı Microsoft Access Database Engine tərəfindən obyektdəki "Field" obyektinin adı kimi istifadə olunur. Rekordlar dəsti. Sahənin adını dəyişdirmək lazımdırsa və ya sahəni yaradan ifadə tərəfindən təmin edilmirsə, qorunan AS sözündən istifadə edin. Aşağıdakı nümunə, qaytarılmış obyekti adlandırmaq üçün BirthDate başlığının necə istifadə edildiyini göstərir Sahə alınan obyektdə Rekordlar dəsti.

İşçilərdən Doğum tarixini SEÇİN;

Birmənalı və ya dublikat obyekt adlarını qaytaran məcmu funksiyaları və ya sorğuları istifadə edərkən Sahə, obyekti təyin etmək üçün AS bəndindən istifadə etməlisiniz Sahə başqa ad. Aşağıdakı nümunədə qaytarılan obyekt Sahə alınan obyektdə Rekordlar dəsti"İşçilərin_sayı" adı verilir.

İşçilərdən Baş Sayı OLARAQ SAYI(İşçi ID) SEÇİN;

SELECT ifadəsi ilə işləyərkən, əldə edilən məlumatları daha da məhdudlaşdırmaq və təşkil etmək üçün əlavə bəndlərdən istifadə edə bilərsiniz. Əlavə məlumat üçün istifadə etdiyiniz təklifin yardım mövzusuna baxın.

1 saylı laboratoriya işi

SQL: DATA EXTRACT - əmrSEÇİN

İşin məqsədi:

  • SQL ifadələri ilə tanış olmaq;
  • SELECT əmrindən istifadə edərək Access-də sadə SQL sorğularının yaradılmasını öyrənmək;

· IN, BETWEEN, LIKE, IS NULL operatorlarının istifadəsi.

Məşq edin№1. SQL rejimində TƏLƏBƏLƏR cədvəlindən AD və SOYAD sahələrinin bütün dəyərlərini seçmək üçün sorğu yaradın.

ADI, SOYADI SEÇİN

TƏLƏBƏLƏRDƏN;

Məşq edin№2 . SQL rejimində TƏLƏBƏLƏR cədvəlinin bütün sütunlarını seçmək üçün sorğu yaradın.

SEÇİN *

TƏLƏBƏLƏRDƏN;


Tapşırıq №3. SQL rejimində tələbələrin yaşadığı şəhərlərin adlarını seçmək üçün sorğu yaradın, bu barədə məlumat ŞƏXSİ MƏLUMATLAR cədvəlində var.

FƏRQLİ ŞƏHƏR SEÇİN

[ŞƏXSİ MƏLUMATLAR]DAN;

Tapşırıq № 4. SQL rejimində İvanov soyadlı bütün tələbələrin adlarını götürən seçim sorğusu yaradın, bu barədə məlumat TƏLƏBƏLƏR cədvəlində var.

SOYADINI, ADINI SEÇİN

TƏLƏBƏLƏRDƏN

SOYADI HARADA="İvanov";

Tapşırıq № 5. Büdcə təhsil forması üzrə UIT-22 qrupunda təhsil alan tələbələrin ad və soyadlarını əldə etmək üçün SQL rejimində seçim sorğusu yaradın.

SOYADINI, ADINI SEÇİN

TƏLƏBƏLƏRDƏN

WHERE GROUP="UIT-22" AND BUDGET=true;

Tapşırıq № 6. SQL rejimində sorğu yaradın. İMTAHA cədvəlindən nümunə üçün yalnız 4 və 5 qiymət alan tələbələr haqqında məlumat.

SEÇİN *

NƏDƏN [DƏYİŞMƏKİMTAHALAR]

HARADASİNİFIN(4,5);

Tapşırıq № 7. IOSU fənnindən imtahan qiyməti 3 olan tələbələr haqqında məlumat seçmək üçün zanpoc və SQL rejimi yaradın.

SEÇİN *

NƏDƏN [DƏYİŞMƏKİMTAHALAR]

HARADAƏŞYA=" IOSU"VəSİNİFIn deyil (4,5);

Tapşırıq № 8. Saatları 100 ilə 130 arasında olan elementlər üçün qeydləri seçmək üçün SQL rejimində sorğu yaradın.

SEÇİN *

FROMƏŞYALAR

HARADABAXIN100-130 ARASINDA;


Tapşırıq № 9. TƏLƏBƏLƏR cədvəlindən soyadları, məsələn, “C” hərfi ilə başlayan tələbələr haqqında məlumat seçmək üçün SQL rejimində sorğu yaradın.

SEÇİN *

FROMTƏLƏBƏLƏR

HARADASOYADIKİMİ"İLƏ*";

Nəticə:ərzində laboratoriya işi SQL təlimatları ilə tanış olmuş, IN, BETWEEN, LIKE operatorlarından istifadə etməklə SELECT əmrindən istifadə etməklə Access-də sadə SQL sorğularının yaradılmasını öyrənmişdir.

Nümunə SQL sorğuları MS Access-də SQL sorğularının yazılmasını öyrənmək və təcrübə etmək üçün istifadə edilə bilər.

Bir SQL sorğusu digərinə daxil edilə bilər. Alt sorğu sorğu daxilindəki sorğudan başqa bir şey deyil. Tipik olaraq, alt sorğu WHERE bəndində istifadə olunur. Ancaq alt sorğulardan istifadə etməyin başqa yolları da var.

Sorğu Q011. m_product cədvəlindəki məhsullar haqqında məlumat göstərilir, kodları da m_income cədvəlindədir:

SEÇİN *
m_məhsulundan
WHERE id IN (m_income FROM product_id SEÇİN);

Sorğu Q012. m_product cədvəlindən kodları m_outcome cədvəlində olmayan məhsulların siyahısı göstərilir:

SEÇİN *
m_məhsulundan
İD OLMADIĞINDA (m_nəticədən məhsul_id SEÇİN);

Sorğu Q013. Bu SQL sorğusu m_income cədvəlində olan, lakin m_outcome cədvəlində olmayan məhsul kodlarının və adlarının unikal siyahısını göstərir:

SEÇİN DISTINCT product_id, başlıq
FROM m_income DAXİLİ QOŞULUN m_product
ON m_income.product_id=m_product.id
WHERE product_id IN YOX (m_nəticədən məhsul_id SEÇİN);

Sorğu Q014. m_kateqoriya cədvəlində adları M hərfi ilə başlayan kateqoriyaların unikal siyahısı göstərilir:

DISTINCT başlığı SEÇİN
m_məhsulundan
"M*" kimi başlıq;

Sorğu Q015. Sorğuda sahələr üzrə hesab əməliyyatlarının yerinə yetirilməsi və sorğuda sahələrin adının dəyişdirilməsi (ləqəb) nümunəsi. Bu nümunə, mənfəətin satışın 7 faizini nəzərə alaraq, hər bir xərc maddəsi üçün xərc = kəmiyyət*qiymət və mənfəəti hesablayır:


məbləğ*qiymət/100*7 AS mənfəət
FROM m_outcome;

Sorğu Q016. Təhlil edərək və sadələşdirərək arifmetik əməliyyatlar, sorğunun icra sürətini artıra bilərsiniz:

Dt, məhsul_id, məbləğ, qiymət, məbləğ*qiyməti nəticə_cəminə görə SEÇİN,
nəticə_cəmi*0,07 AS mənfəət
FROM m_outcome;

Q017 sorğusu.Çox cədvəllərdən verilənləri birləşdirmək üçün INNER JOIN ifadəsindən istifadə edə bilərsiniz. Aşağıdakı misalda, ctgry_id dəyərindən asılı olaraq, m_income cədvəlindəki hər bir giriş məhsulun aid olduğu m_kateqoriya cədvəlindəki kateqoriyanın adı ilə uyğunlaşdırılır:

c.başlıq, b.başlıq, dt, məbləğ, qiymət, məbləğ*qiymət gəlir_sum kimi SEÇİN
FROM (m_gəlir DAXİLİ QOŞULMA KİMİ m_product AS b ON a.product_id=b.id)
INNER JOIN m_category AS c ON b.ctgry_id=c.id
SİFARİŞ C.title, b.title;

Q018 sorğusu. SUM - cəm, COUNT - kəmiyyət, AVG - arifmetik orta, MAX - maksimum dəyər, MIN - minimum qiymət kimi funksiyalar məcmu funksiyalar adlanır. Bir çox dəyərləri qəbul edirlər və emal etdikdən sonra tək bir dəyər qaytarırlar. Məbləğ və qiymət sahələrindən istifadə edərək məhsulun cəminin hesablanması nümunəsi məcmu funksiya SUM.

Bu dərs həsr olunub SQL sorğuları haqqında məlumat bazasına VBA Girişi. Bunu VBA-da necə edəcəyimizə baxacağıq INSERT sorğular, YENİLƏNİB, verilənlər bazasına SİL, və həmçinin SEÇİM sorğusundan xüsusi dəyəri necə əldə etməyi öyrənin.

Proqrama daxil olanlar VBA Girişi və baza ilə işləyərkən SQL məlumatları serverlər çox vaxt SQL sorğusunu verilənlər bazasına göndərmək kimi sadə və zəruri bir vəzifə ilə qarşılaşırlar, istər INSERT, UPDATE, istərsə də sadə SQL SELECT sorğusu. Biz təcrübəsiz proqramçılar olduğumuz üçün bunu da bacarmalıyıq, ona görə də bu gün biz bunu edəcəyik.

Biz artıq SQL serverindən məlumatların əldə edilməsi mövzusuna toxunmuşuq, burada bu məlumatları əldə etmək üçün VBA-da kod yazmışıq, məsələn, MSSql 2008-dən mətn faylına məlumatların yüklənməsi haqqında məqalədə və ya ona da toxunmuşuq materialda azdır Access-dən Word və Excel şablonuna məlumat yükləmək, lakin bu və ya digər şəkildə biz buna səthi baxdıq və bu gün bu barədə bir az daha ətraflı danışmağı təklif edirəm.

Qeyd! Aşağıdakı bütün nümunələr Access 2003 ADP layihəsi və MSSql 2008 verilənlər bazasından istifadə etməklə nəzərdən keçirilir. Əgər siz ADP layihəsinin nə olduğunu bilmirsinizsə, biz bunu Access ADP layihəsini necə yaratmaq və konfiqurasiya etmək olar materialında nəzərdən keçirdik.

Nümunələr üçün mənbə məlumatları

Deyək ki, bizdə ilin aylarının nömrələrini və adlarını ehtiva edən test_table cədvəli var (sorğular istifadə edərək yerinə yetirilir. İdarəetmə studiyası)

CƏDVƏL YARADIN .( NULL DEYİL, (50) NULL) ON ON

Artıq dediyim kimi, biz MS SQL 2008 ilə işləmək üçün konfiqurasiya edilmiş ADP layihəsindən istifadə edəcəyik, orada test forması yaratmışam və imza ilə başlanğıc düyməsi əlavə etmişəm. "Qaç", kodumuzu sınamaq üçün ehtiyacımız olacaq, yəni. Bütün kodu hadisə işləyicisinə yazacağıq " Düyməni basmaq».

Verilənlər bazası sorğuları VBA-da INSERT, UPDATE, DELETE

Çox gecikməmək üçün dərhal işə başlayaq, deyək ki, test cədvəlimizə bir sıra əlavə etməliyik ( kodu şərh etdi)/

Private Sub start_Click() "Sorğu sətirini saxlamaq üçün dəyişəni elan edin Dim sql_query String olaraq "Bizə lazım olan sorğunu ona yazın sql_query = "INSERT INTO test_table (id, name_mon) VALUES ("6", "June")" "İcra et bu DoCmd RunSQL sql_query End Sub

Bu halda sorğu cari verilənlər bazası əlaqə parametrlərindən istifadə etməklə yerinə yetirilir. Məlumatların əlavə edilib-edilmədiyini yoxlaya bilərik.

Gördüyünüz kimi, məlumatlar daxil edilmişdir.

Bir sətri silmək üçün aşağıdakı kodu yazırıq.

Private Sub start_Click() "Sorğu sətirini saxlamaq üçün dəyişəni elan edin Dim sql_query Sətir kimi "Orada silmə sorğusu yazın sql_query = "test_table SİL HARADAN id = 6" "İşlətin DoCmd.RunSQL sql_query End

Yoxlasaq, istədiyiniz xəttin silindiyini görərik.

Məlumatları yeniləmək üçün sql_query dəyişəninə yazın yeniləmə sorğusu, Ümid edirəm mənası aydındır.

VBA-da verilənlər bazasına sorğu seçin

Burada işlər digər SQL konstruksiyalarından bir az daha maraqlıdır.

Birincisi, deyək ki, cədvəldən bütün məlumatları əldə etməliyik və məsələn, biz onu emal edib mesaj şəklində göstərəcəyik və siz, əlbəttə, başqa məqsədlər üçün istifadə edə bilərsiniz, bunun üçün aşağıdakıları yazırıq. kod

Private Sub start_Click() "Dəyişənləri elan et" Verilənlər bazasından qeydlər dəsti üçün Dim RS As ADODB.Recordset "Sorğu sətri Dim sql_query Sim kimi "İclas məlumatlarını mesajda göstərmək üçün sətir Dim str Sim kimi "Qeydlər üçün yeni obyekt yaradın set RS = Yeni ADODB .Recordset "Sorğu xətti sql_query = "Test_table FROM ID, ad_mon SEÇ" "Cari layihə bağlantı parametrlərindən istifadə edərək sorğunu icra edin RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic "Yoxdurkən ( RS.EOF) "Mesajı göstərmək üçün dəyişəni doldurun str = str & RS.Fields("id") & "-" & RS.Fields("name_mon") & vbnewline "növbəti qeydə keçin RS.MoveNext Wend " msgbox str End Sub mesajını çıxarın

Burada qeyd dəstimizdəki bütün dəyərləri təkrarlamaq üçün artıq VBA Access döngələrindən istifadə edirik.

Ancaq çox vaxt qeydlər dəstindən bütün dəyərləri deyil, yalnız birini, məsələn, kodu ilə ayın adını almaq lazımdır. Bunu etmək üçün dövrədən istifadə etmək bir qədər baha başa gəlir, ona görə də biz sadəcə bir dəyər qaytaracaq və ona daxil olacaq sorğu yaza bilərik, məsələn, 5 kodundan istifadə edərək ayın adını alacağıq.

Private Sub start_Click() "Dəyişənləri elan et" Verilənlər bazasından qeydlər dəsti üçün Dim RS As ADODB.Recordset "Sorğu sətri Dim sql_query Sim kimi "Sətrin yekun dəyərini göstərmək üçün Dim str Sim kimi "Qeydlər dəsti üçün yeni obyekt yaradın RS = Yeni ADODB.Recordset "Sorğu xətti sql_query = "Test_table FROM ad_mon SEÇİN id = 5" "Cari layihə bağlantı parametrlərindən istifadə edərək sorğunu icra edin RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic "Dəyərimizi əldə edin str = RS. Fields(0) msgbox str End Sub

Universallıq üçün burada artıq hüceyrə adı ilə deyil, indeksi ilə müraciət etdik, yəni. 0 və bu ilk dəyərdir Rekordlar dəsti, sonunda dəyərimizi aldıq "Bilər".

Gördüyünüz kimi, hər şey olduqca sadədir. Əgər siz tez-tez verilənlər bazasından müəyyən bir dəyər əldə etməlisinizsə ( son misalda olduğu kimi), onda mən bütün kodu ayrı bir funksiyaya (VBA Access 2003-də funksiyanı necə yazmaq olar) bir giriş parametri ilə çıxarmağı məsləhət görürəm, məsələn, ay kodu ( nümunəmizi nəzərə alsaq) və sadəcə olaraq, bu dəyəri göstərmək lazım olduqda, bizə lazım olan funksiyanı tələb olunan parametrlə çağırın və budur, bunu etməklə VBA kodunu əhəmiyyətli dərəcədə azaldacağıq və proqramımızın qavrayışını yaxşılaşdıracağıq.

Bu gün üçün hamısı budur. Uğurlar!