- ベストアンサー
既存のAccessのテーブルに空の領域を作成する
既存のAccess2000のテーブルに空の領域を作成する プログラムを作っているのですが(下記参照)、 「データベースの形式 <ファイル名> を認識できません。(Error 3343)」の エラーが出ます。 【状況説明】 ・パスの内容、パス名、DB名はあっています。 ・編集前のDB前に戻して(テーブル内に空白データが無い状態)、 再実行してもダメでした。 ・参照設定「DAO 3.51 Object Libraly」はチェックしています。 「DAO 3.6 Object Libraly」にチェックすると、 「この名前は既にあるモジュール、プロジェクト、オブジェクト ライブラリで使われています。」のメッセージが出て、チェック出来ません。 解決方法がありましたら、記入をお願い致します。 【作成プログラム】 'DB関連設定 Dim DBName As String(iniファイルから取得したDB名) Dim SQL As String (SQL文領域) Dim DB名 As DAO.Database 'データベース接続 Set DB = OpenDatabase(iniファイルから取得したパス & "\" & DBName) '領域作成 Do While 数値 > 0 SQL名 = "" SQL名 = SQL名 & "INSERT INTO テーブル (A, B, C) " SQL名 = SQL名 & "VALUES ("", "", ""); " db.Execute (SQL) 数値 = 数値 - 1 Loop db.Close
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SQL = " INSERT INTO Cal (Cdate, Holiday) VALUES(dbi , false); " を SQL = " INSERT INTO Cal (Cdate, Holiday) VALUES('" & dbi "', false); " と、してください。 dbiがその上の 変数 = "200210" & 配列(カウント) の変数ですよね?
その他の回答 (2)
- aptiva
- ベストアンサー率36% (193/529)
>'データベース接続 >Set DB = OpenDatabase(iniファイルから取得したパス & "\" & DBName) ここでエラーが出ているんですか? 目的のテーブルが有る、データベースが壊れてはいませんか? 一度、目的のデータベースを修復してみてください。
お礼
>回答者の方へ ありがとうございます。接続は出来ましたが、 Do While カウント > 0 変数 = "200210" & 配列(カウント) SQL = "" SQL = " INSERT INTO Cal (Cdate, Holiday) VALUES(dbi , false); " db.Execute (SQL) カウント = カウント - 1 Loop db.Close というループ文を作成したのですが、 「パラメータが少なすぎます」というエラーが出ました。 ヘルプを開いたのですが、分かりませんでした。 引き続きですが、回答を宜しくお願い致します。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 どこでエラーが出るのでしょうか。 ところで、エラー内容から関係ないかも知れませんが、SQL文の作成で、 SQL名 = SQL名 & "VALUES ("", "", ""); " は、 SQL名 = SQL名 & "VALUES ('', '', ''); " または、 SQL名 = SQL名 & "VALUES ("""", """", """"); " としないとダメなんじゃないでしょうか。 または、Null代入でもいいなら、 SQL名 = SQL名 & "VALUES (Null, Null, Null); " となります。
お礼
解決しました。 皆様ありがとうございました!