AD スポンサー

[Excel for VBA] ADOによるDatabase接続で情報を更新する。

この記事は約3分で読めます。

Excelでユーザーフォームとvbaを使っていろいろとやってます。
昔はAccessプラットフォームのものだったり、簡単なものはVisual.Studio使うのですが、Excelじゃないと駄目な理由があって、制約があるExcelと使ってます。

ところで、VBAでADOを使用したAccess Database接続で情報の更新(UPDATE)を行いますが下記のようなサンプルコードとなります。

Sample Code

[code lang=”vb”] Sub sample1()
Dim objCn As New ADODB.Connection
Dim strSQL As String

With objCn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties") = "Excel 8.0"
.Open ThisWorkbook.Path & "\" & ThisWorkbook.Name
End With

strSQL = ""
strSQL = strSQL & " UPDATE [顧客マスタ2$]"
strSQL = strSQL & " SET"
strSQL = strSQL & " 顧客名 = ‘名前'"
strSQL = strSQL & " WHERE"
strSQL = strSQL & " 顧客番号 = 10001"

objCn.Execute (strSQL)

objCn.Close
Set objCn = Nothing
End Sub
[/code]

別の方法としは以下の様なやり方もあります。

[code lang=”vb”] Dim cn As New ADODB.Connection
Dim db_Path As String
Dim strSQL As String
db_Path = “C:\Users\Username\Documents\12345.db”
cn.Open (“Provider = Microsoft.Jet.OLEDB.4.0;Data Source=” & db_Path)

strSQL = “”
strSQL = strSQL & ” UPDATE T_UserID”
strSQL = strSQL & ” SET”
strSQL = strSQL & ” Passwords = ‘” & update_pass & “‘”
strSQL = strSQL & ” WHERE”
strSQL = strSQL & ” k_ID = ‘” & login_user & “‘”

cn.Execute (strSQL)

cn.Close
Set cn = Nothing
[/code]

———————————————————————————-

ADOはSQL構文を使用しますので、次のお約束は覚えておいてください。

UPDATE テーブル名 SET フィールド名=値1フィールド名=値2 WHERE 更新条件

よく間違えるのは。。。

SELECT * FROM t_data WHERE f_id = 'UserID'

f_idというフィールドが'UsereID'という文字列のレコードを全て抽出します。
文字列は、「'(シングルクォーテーション)」で括るのがルールです。

今話題の商品や、その他のおすすめはこちら

Samsung microSDカード 128GB EVO Plus microSDXC UHS-I U3 Nintendo Switch 動作確認済 最大転送速度130MB/秒 MB-MC128KA/EC 国内正規保証品
日本サムスン
¥1,663(2023/06/05 00:05時点)
最大転送速度 : 130MB/秒 ※対応カードリーダー使用時(対応カードリーダーについてはITGマーケティングのHPをご確認ください)


Beelink Mini PC、AMD Ryzen7 5800H 8コア16スレッド(3.2GHz~4.4GHz)、AMD Radeon Graphics、DDR4 16G 3200Mhz+500G M.2 Nvme SSD、Wifi 6+BT5.2 、3画面ディスプレイ4K/60hz、オフィスミニPC、オートパワーON
Beelink
¥58,800(2023/06/05 08:23時点)
🔥【CPU性能】Beelink SER5 Pro Mini pcは、AMD Ryzen 7 5800H (3.2GHz-4.4GHz, 8C/16T, L3キャッシュ16MB)を搭載し、最新のブレークスルー7nm Zen 3アーキテクチャで構築されており、処理性能は、 Ryzen 5 5600Hと比べて30%向上し、AAAゲーム、写真/ビデオ編集、レンダリング、オフィスソフトウェア、プログラミングなどに最適。ゲーミングのすすめ: CSGO、コールオブデューティ、WWII、PUBG、DOTA 2、LOL。


シャオミ(Xiaomi) スマートウォッチ Smart Band 7 スマートバンド 7 日本語版 1.62インチ有機 ELディスプレイ AOD対応 14日間のバッテリー持続時間 110種類以上スポーツモード 5ATM防水 血中酸素常時測定 着信・メッセージ通知 アラーム 活動量計 iPhone&Android対応
シャオミ(Xiaomi)
¥6,989(2023/06/05 07:47時点)
【1.62の大画面ディスプレイ・キレイで見やすい】Mi Smart Band 6より約25%表示領域が広くなった、1.62インチ 有機EL(AMOLED)ディスプレイ搭載。たとえ、ラフな山道をジョギングしている時でも、サイクリング中でも、揺れるヨットの上でも、気軽にパッと見るだけで運動管理や操作も簡単にすることができます。



大和電器 感震ブレーカー 震太郎 【品番】X5029
大和電器
¥9,280(2023/06/05 01:27時点)
工事なし、アース付のコンセントに差し込むだけの簡単設置。


コカ・コーラ やかんの麦茶 from 爽健美茶 650mlPET ×24本
爽健美茶
¥2,510 (¥105 / 本)(2023/06/05 01:47時点)
原材料:大麦(カナダ、国産)、大麦エキス/ビタミンC