Access VBA質問箱 IV

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

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


580 / 2272 ツリー ←次へ | 前へ→

【11079】リンクテーブルファイルパスの文字数 ひろのしま 09/4/17(金) 23:29 質問[未読]
【11086】Re:リンクテーブルファイルパスの文字数 09/4/20(月) 16:29 発言[未読]
【11097】Re:リンクテーブルファイルパスの文字数 ひろのしま 09/4/25(土) 22:02 発言[未読]
【11103】Re:リンクテーブルファイルパスの文字数 小僧 09/4/27(月) 14:34 発言[未読]

【11079】リンクテーブルファイルパスの文字数
質問  ひろのしま  - 09/4/17(金) 23:29 -

引用なし
パスワード
   質問致します。
Windows XP HomeEditionと
Windows XP Professional両方に
Office XP Professiopnalをインストールしてツールを使用しています。
〜Data.mdb(リンクテーブルつまりデータサーバー)
〜Form.mdb(クライアント側)
と名称を分けてリンクテーブルの形にして使用しています。

Windows XP Professionalで使用している際に、
リンクテーブルのファイルパス(D:\Documents and Settings\PC名\デスクトップ\〜Data.mdb)とファイルを指定した際、118文字(まだ確定できません)あたりで
クライアンド側からテーブルを起動した際に何故か以上終了をしてしまいます。
この現象がWindows XP HomeEdition使用の際には起きないのです。
原因がまったく分かりません。
どなたか原因を突き止めることの出来る方がいたらお願いします。

【11086】Re:リンクテーブルファイルパスの文字数
発言    - 09/4/20(月) 16:29 -

引用なし
パスワード
   こんにちわ。雅です。

>Windows XP Professionalで使用している際に、
>リンクテーブルのファイルパス(D:\Documents and Settings\PC名\デスクトップ\〜Data.mdb)とファイルを指定した際、118文字(まだ確定できません)あたりで
>クライアンド側からテーブルを起動した際に何故か以上終了をしてしまいます。
>この現象がWindows XP HomeEdition使用の際には起きないのです。
>原因がまったく分かりません。

異常終了するときにメッセージなどは出ないのでしょうか?
出るならその詳細を書いてください。

でわ。

【11097】Re:リンクテーブルファイルパスの文字数
発言  ひろのしま E-MAIL  - 09/4/25(土) 22:02 -

引用なし
パスワード
   1.表示される文章:問題が発生したため、Microsoft Access を終了します。 ご不便をおかけして申し訳ありません。
この文章は、リンクテーブルを通常起動するときに表示されます。

2.-2147418113:致命的なエラーです。
これは、下記の関数を使用している時の次の位置で表示されます。

Public Function gfncSQLStrGetValue(strTBLName As String, strPrmID As String, Optional strWhere As String, Optional strOrder As String) As String
  Dim strSQL As String
  Dim gobjCnc As New ADODB.Connection
  Dim gobjRst As New ADODB.Recordset
'On Error GoTo Err_Trap
  gfncSQLStrGetValue = ""
  If gobjCnc.ConnectionString = "" Then
    Set gobjCnc = CurrentProject.Connection
  End If
  strSQL = strSQL & "select " & strPrmID & " As GetValue from " & strTBLName & ""
  
  If Not IsNull(strWhere) And strWhere <> "" Then
    strSQL = strSQL & " where " & strWhere & ""
  End If
  If Not IsNull(strOrder) And strOrder <> "" Then
    strSQL = strSQL & " Order By " & strOrder & ""
  End If
  '--------------この位置↓↓↓↓↓--------------
  Call gobjRst.Open(strSQL, gobjCnc, adOpenKeyset, adLockOptimistic)
  '--------------この位置↑↑↑↑↑--------------
  If gobjRst.RecordCount >= 1 Then
    Call gobjRst.MoveFirst
    gfncSQLStrGetValue = Nz(gobjRst![GetValue])
  Else
    gfncSQLStrGetValue = 0
  End If
  Call gobjRst.Close
Exit_Trap:
  Exit Function
Err_Trap:
  Call gobjCnc.Close
  Call MsgBox(Err.Number, Err.Description)
  GoTo Exit_Trap
End Function

原因がわからないので、応急処置で済ませています。
よろしくお願いします。

▼雅 さん:
>こんにちわ。雅です。
>
>>Windows XP Professionalで使用している際に、
>>リンクテーブルのファイルパス(D:\Documents and Settings\PC名\デスクトップ\〜Data.mdb)とファイルを指定した際、118文字(まだ確定できません)あたりで
>>クライアンド側からテーブルを起動した際に何故か以上終了をしてしまいます。
>>この現象がWindows XP HomeEdition使用の際には起きないのです。
>>原因がまったく分かりません。
>
>異常終了するときにメッセージなどは出ないのでしょうか?
>出るならその詳細を書いてください。
>
>でわ。

【11103】Re:リンクテーブルファイルパスの文字数
発言  小僧  - 09/4/27(月) 14:34 -

引用なし
パスワード
   ▼ひろのしま さん、雅さん:
こんにちは。

行間から察してくれ、という事もあるかもしれませんが、
いくつか確認をさせて下さい。

> 118文字(まだ確定できません)あたりで
文字数が原因という所までの事象切り分けはお済みなのでしょうか?

環境面は

PC_A:WinXP Home
PC_B:WinXP Pro
Server_A:Win2003Server

などという環境で、Server_Aに Data.mdb を共用し、
各クライアントに Data.mdb があるいう認識でよろしいでしょうか?

それとも PC_A 内、PC_B内にそれぞれ Data.mdb、Form.mdb を持っていて
まったく切り離された環境で起きているのでしょうか。


またローカルPC側でも

デスクトップ上(ファイルパス118文字以上)だと失敗するけど
D直下だと成功する、の様な事象でしたら
デスクトップのフォルダ権限が疑しい、などとなります。


現在ご提示されている情報だけですと
色々な原因が考えられるため、もうちょっと詳細な情報があると
回答がつきやすくなるかもしれません。


> 118文字

当方の知っている限りでは118文字という数字で
バグが潜んでいるという話はちょっと聞いた事がないです。

潜在的なバグである場合、2の累乗(128,256,1024など)が起因している事が多いので
・strSQL の文字列
・ファイル名までを含むパス名
・ファイル名を含まない純粋なパス名
・……

等等、上記の数字に近いものがあればバグの情報が見つかるかもしれません。
(事象も再現させやすくなりますね)

580 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free