スポンサーリンク

2007-11-30

Tips112 - SQL文 あいまい検索を行う LIKE句 *

dim SQL as String
dim rs As Recordset
SQL = "SELECT * FROM テーブル名 WHERE 検索フィールド LIKE '*検索文字*'"
Set rs = CurrentDb.OpenRecordset(SQL)

あいまい検索は、「WHERE 検索フィールド LIKE」で行います。
そしてワイルドカード(*)を使用し検索します。
先頭からの文字列を検索するには、'検索文字*'とします。
末尾からの文字列を検索するには、'*検索文字'とします。
どの位置からでも文字列を検索するには、'*検索文字*'とします。

使用例
DVDが含まれる製品名を検索します。
SQL = "SELECT 製品名 FROM 商品管理 WHERE 製品名 LIKE '*DVD*'"

2007-11-28

Tips111 - SQL文 上位トップ3を抽出する TOP句

dim SQL as String
dim rs As Recordset
SQL = "SELECT TOP 3 数値フィールド FROM テーブル名 ORDER BY 数値フィールド DESC"
Set rs = CurrentDb.OpenRecordset(SQL)

抽出したいフィールドを必ず、ORDER BYで降順に並べ替えてください。
その他は、Tips110のワーストと同じです。

使用例
英語のトップテンの学生IDと点数を求めています。
SQL = "SELECT TOP 10 学生ID,英語 FROM テーブル得点 ORDER BY 英語 DESC

2007-11-26

Tips110 - SQL文 ワーストトップ3を抽出する TOP句

dim SQL as String
dim rs As Recordset
SQL = "SELECT TOP 3 数値フィールド FROM テーブル名 ORDER BY 数値フィールド"
Set rs = CurrentDb.OpenRecordset(SQL)

TOPの後ろの数値を変更すると、抽出する件数を変更できます。
例えば TOP 10 にすると10件のレコードになります。
抽出したいフィールドを必ず、ORDER BYで並べ替えてください。

使用例
国語のワースト5の学生IDと点数を求めています。
SQL = "SELECT TOP 5 学生ID,国語 FROM テーブル6 ORDER BY 国語

2007-11-21

Tips109 - SQL文 指定した整数桁で四捨五入 FIX関数

dim SQL as String
dim rs As Recordset
'整数桁1桁で四捨五入
SQL = "SELECT FIX((数値フィールド+5)/10)*10 FROM テーブル名"
'整数桁2桁で四捨五入
SQL = "SELECT FIX((数値フィールド+5)/100)*100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

整数桁1桁の場合
1)5を加算
2)10で除算
3)FIX関数で整数部を取り出す
4)10で乗算

整数桁1桁の使用結果:
12.1 は 10
28 は 30
578 は 580
-456 は -450

整数桁2桁の使用結果:
12.1 は 0
28 は 0
578 は 500
-456 は -400

2007-11-20

Tips108 - SQL文 指定した整数桁で切り上げ FIX関数

dim SQL as String
dim rs As Recordset
'整数桁1桁で切り上げ
SQL = "SELECT FIX((数値フィールド+9)/10)*10 FROM テーブル名"
'整数桁2桁で切り上げ
SQL = "SELECT FIX((数値フィールド+9)/100)*100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

整数桁1桁の場合
1)9を加算
2)10で除算
3)FIX関数で整数部を取り出す
4)10で乗算

整数桁1桁の使用結果:
12.1 は 20
28 は 30
578 は 580
-456 は -440

整数桁2桁の使用結果:
12.1 は 0
28 は 0
578 は 500
-456 は -400

2007-11-19

Tips107 - SQL文 指定した整数桁で切捨て FIX関数

dim SQL as String
dim rs As Recordset
'整数桁1桁で切捨て
SQL = "SELECT FIX(数値フィールド/10)*10 FROM テーブル名"
'整数桁2桁で切捨て
SQL = "SELECT FIX(数値フィールド/100)*100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

整数桁1桁の場合
1)10で除算
2)FIX関数で整数部を取り出す
4)10で乗算

整数桁1桁の使用結果:
12.1 は 10
28 は 20
-456 は -450

整数桁2桁の使用結果:
12.1 は 0
28 は 0
578 は 500
-456 は -400

2007-11-17

Tips106 - SQL文 指定した小数桁で四捨五入を行う FIX関数

dim SQL as String
dim rs As Recordset
'小数点以下1桁で四捨五入
SQL = "SELECT FIX(数値フィールド+0.5) FROM テーブル名"
'小数点以下2桁で四捨五入
SQL = "SELECT FIX((数値フィールド+0.05)*10)/10 FROM テーブル名"
'小数点以下3桁で四捨五入
SQL = "SELECT FIX((数値フィールド+0.005)*100)/100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

小数点以下2桁の場合
1)0.05を足す
2)10倍する
3)FIX関数で整数部を取り出す
4)10で割ります

小数点以下1桁の使用結果:
1.2 は 1
2.8 は 3
-5.78 は -5
10.4195 は 10
20.981 は 21

小数点以下2桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.7
10.4195 は 10.4
20.981 は 21

小数点以下3桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.77
10.4195 は 10.42
20.981 は 20.98

2007-11-15

Tips105 - SQL文 指定した小数桁で切り上げを行う FIX関数

dim SQL as String
dim rs As Recordset
'小数点以下1桁で切り上げ
SQL = "SELECT FIX(数値フィールド+0.9) FROM テーブル名"
'小数点以下2桁で切り上げ
SQL = "SELECT FIX((数値フィールド+0.09)*10)/10 FROM テーブル名"
'小数点以下3桁で切り上げ
SQL = "SELECT FIX((数値フィールド+0.009)*100)/100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

小数点以下2桁の場合
1)0.09を足す
2)10倍する
3)FIX関数で整数部を取り出す
4)10で割ります

小数点以下1桁の使用結果:
1.2 は 2
2.8 は 3
-5.78 は -4
10.4195 は 11
20.981 は 21

小数点以下2桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.6
10.4195 は 10.5
20.981 は 21

小数点以下3桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.77
10.4195 は 10.42
20.981 は 20.99

2007-11-14

Tips104 - SQL文 指定した小数桁で切り捨てを行う FIX関数

dim SQL as String
dim rs As Recordset
'小数点以下1桁で切り捨て
SQL = "SELECT FIX(数値フィールド) FROM テーブル名"
'小数点以下2桁で切り捨て
SQL = "SELECT FIX(数値フィールド*10)/10 FROM テーブル名"
'小数点以下3桁で切り捨て
SQL = "SELECT FIX(数値フィールド*100)/100 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

小数点以下2桁の場合
1)10倍する
2)FIX関数で整数部を取り出す
3)10で割ります

小数点以下1桁の使用結果:
1.2 は 1
2.8 は 2
-5.78 は -5
10.4195 は 10
20.987 は 20

小数点以下2桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.7
10.4195 は 10.4
20.987 は 20.9

小数点以下3桁の使用結果:
1.2 は 1.2
2.8 は 2.8
-5.78 は -5.78
10.4195 は 10.41
20.987 は 20.98

2007-11-10

Tips103 - SQL文 シード値(SEED値)を設定し乱数を求める RND関数

dim SQL as String
dim rs As Recordset
SQL = "SELECT ID,RND(ID+SECOND(NOW())) AS 乱数 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

シード値とは乱数発生の元になる数値です。
同じシード値ですと同じ乱数になります。
その為、上の例ですとIDを加え同じにならないようにしています。

乱数の発生結果です。
0.633178889751434
0.207561135292053
0.186013519763947
0.583359003067017
8.07146430015564E-02
0.457971453666687
0.905729830265045

Tips102 - SQL文 シード値(SEED値)を設定し乱数を求める RND関数

dim SQL as String
dim rs As Recordset
SQL = "SELECT ID,RND(ID+SECOND(NOW())) AS 乱数 FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

シード値とは乱数発生の元になる数値です。
同じシード値ですと同じ乱数になります。
その為、上の例ですとIDを加え同じにならないようにしています。

乱数の発生結果です。
0.633178889751434
0.207561135292053
0.186013519763947
0.583359003067017
8.07146430015564E-02
0.457971453666687
0.905729830265045

2007-11-08

Tips101 - SQL文 乱数を求める RND関数

dim SQL as String
dim rs As Recordset
SQL = "SELECT RND() AS 乱数"
Set rs = CurrentDb.OpenRecordset(SQL)

10回繰り返した結果です。
0.301948010921478
0.774740099906921
0.014017641544342
0.76072359085083
0.814490020275116
0.709037899971008
4.53527569770813E-02
0.414032697677612
0.862619340419769
0.790480017662048