■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
|
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った): |
■ ページの共有: |
[ サイト内検索 ]
![]()
カスタム検索
|
#11091-0Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-04(月) 10:11
#11092-0RE#11091:Ms-Accessですでに存在しているテーブルかどうかを返す関数魔界の仮面弁士2000-09-04(月) 10:30
#11094-0RE#11092:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-04(月) 12:10
#11095-0RE#11094:Ms-Accessですでに存在しているテーブルかどうかを返す関数あ2000-09-04(月) 14:38
#11114-0RE#11095:Ms-Accessですでに存在しているテーブルかどうかを返す関数匿名111142000-09-04(月) 20:10
#11115-0RE#11114:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-04(月) 20:11
#11116-0RE#11094:Ms-Accessですでに存在しているテーブルかどうかを返す関数ぽーらべあ2000-09-04(月) 20:12
#11129-0RE#11116:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-05(火) 14:06
#11130-0RE#11129:Ms-Accessですでに存在しているテーブルかどうかを返す関数魔界の仮面弁士2000-09-05(火) 14:32
#11092-0RE#11091:Ms-Accessですでに存在しているテーブルかどうかを返す関数魔界の仮面弁士2000-09-04(月) 10:30
#11094-0RE#11092:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-04(月) 12:10
#11095-0RE#11094:Ms-Accessですでに存在しているテーブルかどうかを返す関数あ2000-09-04(月) 14:38
#11114-0RE#11095:Ms-Accessですでに存在しているテーブルかどうかを返す関数匿名111142000-09-04(月) 20:10
#11115-0RE#11114:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-04(月) 20:11
#11116-0RE#11094:Ms-Accessですでに存在しているテーブルかどうかを返す関数ぽーらべあ2000-09-04(月) 20:12
#11129-0RE#11116:Ms-Accessですでに存在しているテーブルかどうかを返す関数こばゆみ2000-09-05(火) 14:06
#11130-0RE#11129:Ms-Accessですでに存在しているテーブルかどうかを返す関数魔界の仮面弁士2000-09-05(火) 14:32
こばゆみ2000-09-04(月) 10:11
Accessですでに存在しているテーブル名かどうかを返す関数ってありますか? Accessで別データベースからテーブルを取り込む際に、 テーブル名1(お尻に追い番がついてしまいます)となってしまうので、 すでに存在するテーブルかどうかをVBAで確認したいと思っていますが、(^^; 関数(テーブル名)=True とかできるような関数ってあるんでしょうか? ヘルプで見てもわからないので投稿させてもらいました。 他に何かいい知恵でもありましたらご存知の方、伝授してください。。。
魔界の仮面弁士2000-09-04(月) 10:30
> Accessですでに存在しているテーブル名かどうかを返す関数ってありますか? > Accessで別データベースからテーブルを取り込む際に、 > テーブル名1(お尻に追い番がついてしまいます)となってしまうので、 > すでに存在するテーブルかどうかをVBAで確認したいと思っていますが、(^^; 存在するかどうかを調べるよりも、取り込む前に、 既存のテーブルを破棄してしまえばよいのでは? テーブルが無いときに破棄しようとすれば、当然エラーになりますが、 エラートラップして無視してしまえば済むように思えます。 > 関数(テーブル名)=True > とかできるような関数ってあるんでしょうか? とりあえず、テーブルオブジェクトを For Each で列挙して調べるとか。
こばゆみ2000-09-04(月) 12:10
ありがとうございます。 > > 存在するかどうかを調べるよりも、取り込む前に、 > 既存のテーブルを破棄してしまえばよいのでは? > テーブルが無いときに破棄しようとすれば、当然エラーになりますが、 > エラートラップして無視してしまえば済むように思えます。 そーなんです。 テーブルを破棄しようとしてて、 テーブルが無いときにエラーが返ってくるので、 テーブルがあるかないかを確認した方がいいのかなーと思ったわけなのです。 でも、、、、エラートラップすればいいということですが、、 すみません。。。 エラートラップして無視するってどういうことなのでしょうか? 恥ずかしながら、、よくわかりません。 エラーメッセージを表示しないようにする方法があるのでしょうね。ちょっと調べてみます。
あ2000-09-04(月) 14:38
> でも、、、、エラートラップすればいいということですが、、 > すみません。。。 > エラートラップして無視するってどういうことなのでしょうか? > 恥ずかしながら、、よくわかりません。 > エラーメッセージを表示しないようにする方法があるのでしょうね。ちょっと調べてみます。 > では,補足ということで追記します。テーブルが無かった場合にエラーメッセージが帰ってくると思いま す。その時に,エラーメッセージの左上にエラー番号がでると思います。そのエラー?で判断させるという ことです。例えばAccessでデータ操作をしているとよく起こる「Null値の使い方が不正です」というエラー はエラー?が94なので, Private Sub Command1_Click() On Error Goto Er 'エラートラップの開始 ・ ・ ・ ・ ・ ・ ・ Exit Sub Er: Select Case Err.Number Case 94 Resume Next '次の行から処理続行 End Select End Sub といった具合です。On Error GotoやResume Nextについての詳細はヘルプを参考にしてください。で は。
匿名111142000-09-04(月) 20:10
> では,補足ということで追記します。テーブルが無かった場合にエラーメッセージが帰ってくると思いま > す。その時に,エラーメッセージの左上にエラー番号がでると思います。そのエラー?で判断させるという > ことです。例えばAccessでデータ操作をしているとよく起こる「Null値の使い方が不正です」というエラー > はエラー?が94なので, > > Private Sub Command1_Click() > > On Error Goto Er 'エラートラップの開始 > > ・ > ・ > ・ > ・ > ・ > ・ > ・ > Exit Sub > > Er: > Select Case Err.Number > Case 94 > Resume Next '次の行から処理続行 > End Select > End Sub > > といった具合です。On Error GotoやResume Nextについての詳細はヘルプを参考にしてください。で > は。 本当にすみません。 エラーのときに出てくるNoをそういうふうに使うんですね。すごーい。 まだ実際にはやっていませんが、トライしてみます。 本当に何度も助言くださいまして、ありがとうございました 感謝感謝!です。(^o^)
こばゆみ2000-09-04(月) 20:11
↓匿名になってしまいました。 すみません。。こばゆみが投稿しました。
ぽーらべあ2000-09-04(月) 20:12
ぽーらべあと申します。 > テーブルを破棄しようとしてて、 > テーブルが無いときにエラーが返ってくるので、 > テーブルがあるかないかを確認した方がいいのかなーと思ったわけなのです。 私は以下のモジュールを使用して、テーブルの存在を確認しています。 どこからとってきたソースかは不明。(--); ' 機 能:指定したテーブルが存在するか確認します ' 引 数:sFileName ファイル名 ' sTableName テーブル名 ' 戻り値: 0 :正常終了 テーブルがない ' 1 :正常終了 テーブルが存在 ' -1 :異常終了 Public Function ExistTable(sFileName As String, sTableName As String) As Integer Dim MyDatabase As Database Dim nFlag As Integer Dim i As Integer On Error GoTo ErrorHandler ExistTable = 0 Set MyDatabase = Workspaces(0).OpenDatabase(sFileName) '指定したテーブルが存在するかチェックします。 For i = 0 To MyDatabase.TableDefs.Count - 1 If MyDatabase.TableDefs(i).Name = sTableName Then '存在したら戻り値を「1」にセットします。 ExistTable = 1 Exit For End If Next i MyDatabase.Close Exit Function ErrorHandler: ExistTable = -1 End Function
こばゆみ2000-09-05(火) 14:06
> ぽーらべあと申します。 > > > テーブルを破棄しようとしてて、 > > テーブルが無いときにエラーが返ってくるので、 > > テーブルがあるかないかを確認した方がいいのかなーと思ったわけなのです。 > > 私は以下のモジュールを使用して、テーブルの存在を確認しています。 > どこからとってきたソースかは不明。(--); ぽーらべあさん、 どうもありがとうございます。 魔界の仮面弁士さんに教えていただいた方法で、実現することができました。 ぽーらべあさんのソースもさっそくやってみます。 結局、存在しているテーブルかどうかを返す関数というのは ないみたいですが、いろいろな考え方を知ることができて大変参考になりました。 ほーーーんとに!ありがとうございました!!!!(^o^//
魔界の仮面弁士2000-09-05(火) 14:32
>>> テーブルがあるかないかを確認した方がいいのかなーと思ったわけなのです。 > 結局、存在しているテーブルかどうかを返す関数というのは > ないみたいですが、いろいろな考え方を知ることができて大変参考になりました。 あまり汎用的ではありませんが、確認する方法はあります。 TableName = "テーブル1" If CBool(DCount("*", "MSysObjects", "[Name]=""" & TableName & """")) = True Then MsgBox TableName & "は存在します。" Else MsgBox TableName & "は存在しません。" End If まぁ今回は、あまり深く考えずに、 On Error Resume Next CurrentDb.TableDefs.Delete TableName On Error GoTo 0 '(インポート処理) で良いとは思いますが。(^^A
このページと関連する記事:
#22692-0テーブルの存在確認(ADO)2001-08-27(月) 10:24#9681-0mdb内のテーブル存在チェック方法2000-04-17(月) 19:13
#27465-0nullの回避の賢いやり方はあるでしょうか?2000-08-07(月) 16:08
#1982-0テーブル名にスペース2002-04-16(火) 17:19
#8348-0ファイル書き込みエラーでリトライさせたい1999-10-27(水) 17:44
#19543-0Formの使用制限方法2001-03-13(火) 12:39
#2235-0ありがとうございます。1999-10-12(火) 12:00
#12609-0トラップがかからない2000-01-04(火) 13:48
#43186-0On Errorステートメントについて2001-05-19(土) 14:52
#543-2立ち上がっているEXCELをすべて閉じる2003-12-10(水) 17:46
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。