Access VBA質問箱 IV

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

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


5676 / 9994 ←次へ | 前へ→

【7532】Re:一旦アクセスに取り込んだ写真のエクスポート
回答  o  - 06/3/16(木) 13:40 -

引用なし
パスワード
   すいません。

教えて頂いたHPどおりに以下のプログラムで
実行したのですが途中でエラーになります。


Private Sub コマンド25_Click()
On Error GoTo Err_コマンド25_Click


  Screen.PreviousControl.SetFocus
  DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

Exit_コマンド25_Click:
  Exit Sub

Err_コマンド25_Click:
  MsgBox Err.Description
  Resume Exit_コマンド25_Click
  
End Sub

' 指定されたレコードの OLE オブジェクト型またはメモ型フィールドの
' 内容をファイルに書き出します。
' 成功すると空文字列を、失敗するとエラーメッセージを返します。
' 引数は、DLookup 関数などの Domain 系定義域集計関数と、GetChunk
' メソッドの引数に準じます。
' ただし引数 offset 省略時にはデータの先頭から、引数 numbytes
' 省略時にはデータ長すべてが対象になります。
' DAO ライブラリへの参照設定が必須です。
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
  ' 変数を初期化します。
  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)
  ' データ型をチェックします。
  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

エラー番号は91で「オブジェクト変数またはWithブロック変数が
設定されていません」とでます。

これはなぜでしょうか?

最初はSQLServerにDAOで接続することができないのかと
思いましたが調べるとそうではないようでした。
671 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 発言

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