Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5669 / 9994 ←次へ | 前へ→

【7539】Re:一旦アクセスに取り込んだ写真のエクスポート
発言  o  - 06/3/16(木) 15:54 -

引用なし
パスワード
   こんにちは。

何度も申し訳ないです。

先ほどのエラーは以下の追加箇所と変更箇所(**で囲ってあります)で

解決しました。

ただ、実行してもエラーは出ないのですがファイルサイズはいつまでたっても

0のままで砂時計になります。

やはり元の形式(アクセスに取り込むファイル)がjpegで

このプログラムはbmp形式だからでしょうか。

とりあえず途中報告です。

データが重いだけかもしれませんのでもう少し様子を見ます。


Function DWriteChunk(fieldname As String, _
    tablename As String, _
    filename As String, _
    Optional criteria As String, _
    Optional ByVal offset As Long, _
    Optional ByVal numbytes As Long) As String
On Error GoTo ErrorHandler
  ' 定数/変数宣言部
  Const ERR_INVARID_DATA_TYPE = 3259
  Dim rs     As DAO.Recordset
  Dim strSQL   As String
  Dim varChunk  As Variant
  Dim abytChunk() As Byte
  Dim FileNo   As Integer
  Dim strConnect As String
  Dim db As DAO.Database

***********************************************************
*****************追記箇所**********************************
***********************************************************
  
  '-- ODBC 接続文字列の指定
  strConnect = "ODBC;Driver={SQL Server};Server=sgw9920sv4;" & _
         "Database=資産管理SQL;UID=hoken;PWD=hoken;"
  
  '-- 接続文字列を使用して SQL Server に接続する
  Set db = DBEngine.OpenDatabase("", False, False, strConnect)
  
***********************************************************
*****************追記箇所終了******************************
***********************************************************
  
  ' 変数を初期化します。
  FileNo = FreeFile
  strSQL = "Select " & fieldname & " From " & tablename
  If (LenB(criteria) <> 0) Then strSQL = strSQL & " Where " & criteria
  strSQL = strSQL & ";"
  ' ファイルとレコードセットを開きます。
  Open filename For Binary As #FileNo

***********************************************************
*****************変更箇所**********************************
***********************************************************

'  Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
  Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)

***********************************************************
*****************追記箇所終了******************************
***********************************************************

  ' データ型をチェックします。
  Select Case rs(0).Type
    Case dbLongBinary, dbMemo
      ' OK
    Case Else
      Err.Raise ERR_INVARID_DATA_TYPE
    End Select
  ' データをファイルに書き込みます。
  With rs
    If (numbytes = 0) Then numbytes = .Fields(fieldname).FieldSize
    varChunk = .Fields(fieldname).GetChunk(offset, numbytes)
    abytChunk = varChunk
    Put #FileNo, , abytChunk
  End With
  
ExitProcedure:
On Error Resume Next
  Close #FileNo
  rs.Close: Set rs = Nothing
  Exit Function

ErrorHandler:
  DWriteChunk = Err.Number & ":" & vbCrLf & Err.Description
  Resume ExitProcedure
End Function

Private Sub コマンド26_Click()
  Const BMP_OFFSET = 87
  Dim strResp As String
  strResp = DWriteChunk( _
    "写真", _
    "T_購入_写真", _
    "C:\" & "テスト.bmp", _
    "[管理No.]=0000000001-001", _
    BMP_OFFSET)
  If (LenB(strResp) = 0) Then strResp = "完了"
  MsgBox strResp
End Sub

534 hits

【7515】一旦アクセスに取り込んだ写真のエクスポート o 06/3/15(水) 11:00 質問
【7524】Re:一旦アクセスに取り込んだ写真のエクスポ... Gin_II 06/3/15(水) 23:10 回答
【7531】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 11:24 発言
【7532】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 13:40 回答
【7534】Re:一旦アクセスに取り込んだ写真のエクスポ... たん 06/3/16(木) 14:43 発言
【7535】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 14:59 回答
【7536】Re:一旦アクセスに取り込んだ写真のエクスポ... たん 06/3/16(木) 15:23 回答
【7537】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 15:27 回答
【7538】Re:一旦アクセスに取り込んだ写真のエクスポ... YU-TANG 06/3/16(木) 15:37 発言
【7540】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 15:56 お礼
【7542】Re:一旦アクセスに取り込んだ写真のエクスポ... YU-TANG 06/3/16(木) 16:15 発言
【7539】Re:一旦アクセスに取り込んだ写真のエクスポ... o 06/3/16(木) 15:54 発言
【7541】Re:案 たん 06/3/16(木) 16:14 発言
【7543】Re:案 YU-TANG 06/3/16(木) 16:20 発言
【7544】Re:(^^;) たん 06/3/16(木) 16:22 発言
【7545】Re:(^^;) たん 06/3/16(木) 16:25 発言

5669 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free