前提・実現したいこと
VBAにてデータベース(MySQL8.0)に接続し、テーブルの値を取得しております。
以下のようなテーブルからTime型データを取得しようとすると、
VBA側では「2020/11/1 9:05:00」のように日付が追加されてしまいます。
時刻のみを取得する方法があれば教えていただきたいです。
+--------------+----------+
| Date | Time |
+--------------+----------+
| 2011-06-30 | 09:05:00 |
+--------------+----------+
該当のソースコード
VBA
1 Const MYDRIVER = "Driver={MySQL ODBC 8.0 Unicode Driver};" 'ドライバー 2 Const MYSERVER = "Server=localhost;" 'サーバー 3 Const MYPORT = "Port=3306;" 'ポート 4 Const MYDATABASE = "Database=testdb;" 'データベース名 5 Const MYCCODE = "STMT=SET NAMES sjis;" '文字コード(Excel側) 6 Const MYUSER = "UID=test;" 'ユーザー名 7 Const MYPASS = "PWD=;" 'パスワード 8 9 Dim cn As New ADODB.Connection 10 Dim rs As New ADODB.Recordset 11 Dim constr As String 12 Dim strSQL As String 13 Dim i As Long 14 Dim j As Long 15 16 constr = MYDRIVER & MYSERVER & MYPORT & MYDATABASE & MYCCODE & MYUSER & MYPASS 17 18 cn.ConnectionString = constr 19 cn.Open 20 21 strSQL = "select * from testdb.tbl1315;" 22 rs.Source = strSQL 23 rs.ActiveConnection = cn 24 rs.Open 25 26 Dim ws As Worksheet 27 Set ws = Worksheets("test") 28 29 i = 1 30 Do Until rs.EOF 31 32 For j = 0 To rs.Fields.Count - 1 33 ws.Cells(1 + i, 1 + j) = rs(j).Value 34 Next j 35 36 rs.MoveNext 37 i = i + 1 38 Loop
その他
現状、TimeValue(rs(j).Value)のようにして時刻データを取得しておりますが、
できれば、そのまま値を取得したいと考えております。
また、Date型の値は時刻が追加されずにそのまま取得することができております。
あなたの回答
tips
プレビュー