未だにDAO?と思われるかもしれませんが、Excel2003の頃から使っているマクロを
少しずつ改良しながら使っています。
ところが、今回あるマシンでエラートラップになりそうなところに
入れていたIf文にひっかかったのです。
変数の中身を見るとdbs、rsともにNothingになっていました。
VBA
1 Dim dbs As DAO.Database 2 Dim rs As DAO.Recordset 3 Dim strSQL As String 4 5<中略> 6 7 Set dbs = OpenDatabase(<DBのパス>) 8 Set rs = dbs.OpenRecordset(strSQL) 9
現象が出るのは、Windows10でExcel2016の環境なのですが、
別のWindows10でExcel2016だとうまく動くこともあるのです。
どのような場合にこのようなことが起こるのか知りたいです。
それによってどうやって解決するかを考えたいと思います。
「あるマシン」から、ネットワーク的にデータベースは見えるのでしょうか?そこだけ環境が違う職場だったり、そのPCの設定がほかと違う可能性についてまずは確認してみないと、もしかしたらプログラムのソースだけ見ていても解決しないかもしれません。そちらの確認状況や状態についての情報も補足いただくと有益なアドバイスが出てくるかもです。
【 ネットワーク的にデータベースは見えるの】については情報が不足していましたが見えています。
【そこだけ環境が違う職場】についてですが、同じサブネットマスク内のネットワーク上に動作するマシンも動作しないマシンもいます。
「エラートラップになりそうなところ」というのがよくわかりませんが、`On Error` ステートメントを使用しているということなら、まずはそれを外してエラーを特定してください。
実際はOn Errorステートメントは入れていません。エラーというよりブレイクポイントを使って上記のステートメントを確認してみたのですが、変数がNothingになっているのです。