ACCESS2002でVBAを使ってテキストファイルにエクスポートしようとすると
次のようなエラーが出てしまいます。
「予期せぬエラー #3027が発生しました。
データベースまたはオブジェクトは読み取り専用なので更新できません。」
これを回避するにはどうしたらいいのでしょうか。
ちなみにVBAの記述は
DoCmd.TransferText acExportDelim, "", "抽出クエリ", "a:\nk100.txt" , False, ""という記述です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

A:ドライブはフロッピーですよね?


○"抽出クエリ"は単体で動かしたときはきちんと動作しますか?

○a:\nk100.txtには読取専用属性が付いてませんか?

○フロッピーディスクのライトプロテクトは解除されていますか?

○フロッピーには十分な空きがありますか?

○出力先を C:\nk100.txt などとしても変わりませんか?

○一旦Accessを終了後に再度実行してみても変わりませんか?
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q大量な小さなテキストファイルを共有する方法を教えてください。

 大量のファイルをネット上で、複数の人と簡単に共有する方法を教えてください。私は1000単位で、ネット上で集めた文書のテキストファイルがあります。これは、grepを使って、いろいろ検索すると意味を持つコーパスを意識してデータ収集しました。(英語の手紙です)これを人と共有するのに一楽な方法はありますでしょうか。
 一つは、それに全部リンクをつけインデックスページを作り、アップロードして、それを他人にホームページダウンロードソフトで落としてもらうことですが、当方は、集めたファイルにリンクをはってアップするのも手間がかかります。リンクをつけないでアップするとダウンロードソフトは解析しませんでした。(Website Explorer) リンクつきインデックスを作らずに共有する方法は何か考えられるでしょうか。大きさは全部で数メガ程度ですが、1つのファイルがテキストファイルで数キロバイトです。

Aベストアンサー

集めてきたファイルのインデックスページを作成するのが面倒
ということで、プログラムの知識は低いと推測しました。

実際には、"共有"でなくて、サーバから一括ダウンロードしてローカルの一つのフォルダに放り込んでから使う利用方法が一般的ではないでしょうか?
その場合なら、全部一まとめにしたZipファイルを置いておけば事足りるでしょう。
Web上で検索したいんだというなら、そのようなWebサーバを立てるかということになりますが、難易度は高め。
Wikiのサービスを利用して、そこにアップロードするような仕掛けも考えられますが・・・
正直、利用者の規模が想定出来ないので、「変に共有する必要はないんじゃないか」というのが実感です。

著作権についての指摘もありましたが、内容は許諾のあるものに限定されてますよね?まあ、コーパスを作る上でそこら辺は重々承知でしょうが・・・。

Q[Access VBA] DoCmd.OpenForm ...の書式について(VBAに詳しい方求む!)

仕事でAccessを使用しています。
帳票管理のデータベースを作ってて
帳票名フィールドに各種の帳票の名前が格納されています。
ここはコンボボックスにしてあり、データベース化する
対象の帳票も決まってます。
メインのフォームには帳票の基礎データを入力し
フォーム上に作ったボタン(ボタン名「詳細記録」)を押すことで
各帳票の詳細な記録を書きこむフォームが現れるように設計する予定です。

そこで、メインのフォームに設けたボタンの
「クリック時」のイベントプロシージャに以下の記述をしました。

Private Sub 詳細記録_Click()
DoCmd.OpenForm 帳票名
End Sub

ボタンをクリックした時点で帳票名フィールドに記載されている
帳票の詳細記録フォームがたちあがります。
例えば帳票名フィールドが
「AA」の時→ボタンClick→AAの詳細記録フォームが立ちあがる。
「BB」の時→ボタンClick→BBの詳細記録フォームが立ちあがる。
(企業秘密のため具体的な帳票名を書けません。)

実はこのような動作をしてくれるのが目的だったのですが
疑問があるんです。
それより前には、上述のと1箇所だけ記述がいろいろ変えてました。

DoCmd.OpenForm "帳票名"

帳票名のところがダブルクォーテーションでくくってあるかないか
の違いです。
くくるとエラーが出ますが、くくらないとうまく行きます。

[帳票名]のときもうまく行きましたが、"[帳票名]" はだめのようです。

また、" "の中を具体的な帳票の名前にすると
(例:DoCmd.OpenForm "AA")
いつでもそのAAフォームだけがたちあがります。
(帳票名フィールドの記述がBBでも)

たまたまダブルクォーテーションをはずすと
うまく反応してくれたんでよかったんですが
ダブルクオーテーションひとつで
なぜこんなに動きが違うのか?
わかる方よろしくお願いします。

仕事でAccessを使用しています。
帳票管理のデータベースを作ってて
帳票名フィールドに各種の帳票の名前が格納されています。
ここはコンボボックスにしてあり、データベース化する
対象の帳票も決まってます。
メインのフォームには帳票の基礎データを入力し
フォーム上に作ったボタン(ボタン名「詳細記録」)を押すことで
各帳票の詳細な記録を書きこむフォームが現れるように設計する予定です。

そこで、メインのフォームに設けたボタンの
「クリック時」のイベントプロシージャに以下の記述をし...続きを読む

Aベストアンサー

文字列と要素名との使い分けで混乱なさってるようですね。

ダブルクォーテーションで括るのは、「ソースコード中に直接、文字列を記述する」場合のみです。

'テキストボックスに「こんにちは」と表示する
MsgBox "こんにちは"

この例では、MsgBox命令に対して、「こんにちは」という文字列を渡しています。

Dim Message as String
Message = "こんにちは"
MsgBox Message

この例では、Message という変数に「こんにちは」という文字列を代入し、MsgBox命令にMessage という変数を渡しています。
Messageは変数であって文字列ではないため、ダブルクォーテーションで括る必要がないのです。

DoCmd.OpenForm でも同様。

DoCmd.OpenForm "帳票A"
は、「帳票A」という文字列をDoCmd.OpenForm命令に渡しています。


帳票フィールドに「帳票A」という文字が格納されているとき、

DoCmd.OpenForm Me![帳票フィールド]

とすると、DoCmd.OpenFormに渡されるのは「Me![帳票フィールド]」という文字列ではなく、帳票フィールドに格納されている「帳票A」という文字列が渡されるのです。

尚、この命令文は

Dim Chouhyou As String
Chouhyou = Me![帳票フィールド]
DoCmd.OpenForm Chouhyou

とするのと同じです。

あんまりいい説明じゃないかもしれませんが、VBA理解の一助にでもなれば幸いです。

文字列と要素名との使い分けで混乱なさってるようですね。

ダブルクォーテーションで括るのは、「ソースコード中に直接、文字列を記述する」場合のみです。

'テキストボックスに「こんにちは」と表示する
MsgBox "こんにちは"

この例では、MsgBox命令に対して、「こんにちは」という文字列を渡しています。

Dim Message as String
Message = "こんにちは"
MsgBox Message

この例では、Message という変数に「こんにちは」という文字列を代入し、MsgBox命令にMessage という変数を渡しています...続きを読む

QPC・フォルダの共有サイトなど

パソコンのフォルダを友達のパソコンと共有できるようなフリーの管理ソフトかサイトなどを探しています。

・パスで第三者に見られないようにできる
・テキストなどをそのまま開いて更新や保存ができる
・パソコンにそのフォルダのデータを残さないでも平気

説明が下手で分かりづらいかもしれませんがこのような感じのものを探しています。
掲示板的な機能もあればなお良いです。

何かおすすめがあれば教えて頂きたいです。

よろしくお願い致します。

Aベストアンサー

情報の入手のしやすさの点で、マイクロソフトのSkyDriveをお奨めします。
●今更ながら25GオンラインストレージSkyDriveをローカルフォルダ化してみた*ホームページを作る人のネタ帳
http://e0166.blog89.fc2.com/blog-entry-724.html

______________________

◆無料オンラインストレージ一覧 - フリーソフト100
http://freesoft-100.com/web/onlinestrage.html
も使い方次第ではご質問の要望を満たすことができるでしょう。同期などを考えるとSugarSyncなどが便利です。

QACCESSでTXTにデータエクスポートする際

ACCESSでマクロ組んでます。
マクロでテーブルデータをtxtファイルにエクスポートしたいのですが、テキスト変換を設定する時に、定義名を入れないとダメみたいですが、何を入れればいいのか分かりません
できるだけマクロ使いたいのですが、無理ならばVBAでもと思っています。
access2000を使用しており、デスクトップにデータ出したいと思っています。

Aベストアンサー

定義名は自分で作った定義ファイル名を設定します。
定義ファイルは、以下のように作成します。

テーブルをクリックして選択してい状態で、右クリックでメニューを出し、エクスポートを選択します。
定義ファイルを置いておく場所(mdbと同じディレクトリ)を選択し、
ファイルの種類「テキストファイル(*.txt,*.cvs,*.tab,*.a)」を選択※します。
※ここがポイントで重要です。
そして「保存」ボタンをクリックします。
表示されるウィンドウの左下に「設定」ボタンがありますので、これをクリックしてエクスポート定義ファイルの設定画面を表示します。
ここで希望される、エクスポート方式を選び「保存」ボタンをクリック。
ここで、定義名の入力画面になりますので、「OK」ボタンをクリックし、
定義ファイルの完成です。
あとは、この名前をマクロの定義名に使ってください。

Q動画共有サイト(安全性)について

動画共有サイトを利用するにあたって教えてください。

1.動画共有サイト上で動画を見ている場合、自分のパソコンと第三者のパソコンと
 接続している状態になるのでしょうか?

2.動画共有サイトから動画をダウンロードする場合はどうでしょうか?
 ちなみに動画共有ダウンロードソフト DL-Video等でダウンロードした場合
 自分のパソコンと第三者のパソコンと接続している状態になるのでしょうか?

ファイル共有ソフト Winny等は第三者と接続状態になりデータの流出が問題になりましたが
動画共有サイトの場合はどうなんでしょうか?
ファイル共有ソフトでダウンロードするのと動画共有サイトからダウンロードするのとは
違うのでしょうか?

説明ベタですいませんがよろしくお願いします。

Aベストアンサー

>こういう動画ファイルにウィルスがついている場合もありますか?

可能性としてはゼロではありません。ですが、サーバー側でウイルス対策をしているのでほぼ無いと思って良いでしょう。

>たしかに著作権に関して問題になっていますが、あくまでも一個人の利用です。

著作権に関しては個人とか個人じゃないとか関係ありませんよ。一個人での利用を理由に見逃されるなら著作権なんて存在する意味がありません。

QエクセルVBAで作成した別ブックにVBAを記述したい

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1
Set wb = Workbooks.Add
Application.SheetsInNewWorkbook = sc

wb.Sheets("Sheet1").Select
ThisWorkbook.Sheets("Sheet1").Cells.Copy
wb.Sheets("Sheet1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

ActiveSheet.Buttons.Add(123, 195, 68.25, 15).Select
Selection.OnAction = "TEST"
Selection.Characters.Text = "TEST"
ActiveWorkbook.Close
ThisWorkbook.Activate
Sheets("Sheet1").Select
End Sub

Sub TEST()
MsgBox "TEST!!"
End Sub

よろしくお願いします。

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application....続きを読む

Aベストアンサー

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet1").CodeModule

.InsertLines 1, "Private Sub Worksheet_Change(ByVal Target As Range)"
.InsertLines 2, ""
.InsertLines 3, " MsgBox ""セルの値が変更されましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

wb.VBProject.VBComponents.Add (1) 'Module1挿入
With wb.VBProject.VBComponents.Item("Module1").CodeModule

.InsertLines 1, "Sub TEST()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""TESTしたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet...続きを読む

Qファイル共有と動画共有サイトのつながり

ファイル共有ソフトは簡単に言えば自分のファイルを公開して
いくものですよね。
だから情報漏洩につながると知っています。(ウイルス等で)
しかし同じ共有でも、ようつべやニコニコなどの動画共有のサイトは、見る限り自分のファイルを公開するというのではなくて、
ただ単に動画を公開するだけで、情報漏洩にはつながらないと思うんです。
しかし、「共有」だから、ファイル共有もするのかなぁと思ったんですが、やはりあいまいです。

結局、ファイル共有ソフトと動画共有ソフトの違いは何なのでしょうか?また、動画共有サイトではファイル共有はするのでしょうか?
ニコニコをはじめたいのに、ファイル共有がだめなので、共有という言葉が引っかかります。
どうぞ、よろしくお願いします。

Aベストアンサー

共有するファイルがどこにあるか、です。
ファイル共有ソフト(P2Pソフト)・・・自分のHDD
動画共有サイト・・・サーバーのHDD
どちらにしても自分が著作権を持たないものに関しては、
著作権法違反行為に該当します。

QAccess VBA ダイアログ指定 CSVエクスポート

お世話になります
CSVファイルをAccessにインポートしたいのですが。

■検索ボタンクリック→ダイアログBOXでファイル指定→
選んだCSVファイル場所をテキストボックスに保存→
確認ボックス→はい→インポート開始
と言う具合が理想ですが可能ですか?

■また、実行中、待ち時間インジケータでインポートの進捗状況を
把握したいのですが

ちなみにファイル名、ワークシート名は毎回異なりますが列名は同じです。
判る方ご教授お願いします。

Aベストアンサー

インポート定義が保存されていないようですが。

とりあえず
Private Sub 実行_Click()
  'TextConv Me.テキスト1, "テーブルA", "テーブル1"
  TextConv Me.テキスト1, "", "テーブル1"
End Sub
にすれば、インポートは出来ます。

インポート定義ができたら、その名前にしてください。

> ■全データ削除ではなく追加していきたい

'テキストコンバートルーチン
Sub TextConv(strFle As String, strInp As String, strTbl As String)
  If MsgBox("インポートしますか?", 4, "実行確認") = vbYes Then
    DoCmd.TransferText acImportDelim, strInp, strTbl, strFle, True
    '1行目がヘッダーなら、最後の TRUE が必要です。
    MsgBox "テーブルデータを更新しました"
  End If
End Sub

> ■CSVには不要な列もある
ということであれば「インポート定義」は必須です。
もう一度、
手動で、ファイルメニューから
[外部データの取り込み] - [インポート]
ファイルの種類でテキストファイルを選択し、
「Table.csv」を選択してインポートをクリック。
以下、ウィザードの画面で
「区切り記号付き」を選択して「次へ」をクリック。
「フィールド区切り記号」を「カンマ」、
「先頭行をフィールド名として使う」にチェック、
ここで 「設定」ボタンをクリックして、インポート定義の画面に。
必要なら、フィールド名を書き換える。
(CSV の ヘッダとテーブルのフィールド名が異なる場合など)
必要ならデータ型を書き換える。
(0001 というコードが数値にされてしまうと困る場合など)
インポートしないフィールドは「スキップ」欄にチェックする。
ここで 「保存」ボタンをクリック。
必要なら「定義名」を書き換えて、「OK」をクリック。
定義名は忘れないでメモしてね。
デフォルトで表示される名前には、スペースが含まれているので注意。
「OK」をクリックして、インポート定義の画面に。
「OK」をクリックして、ウィザードに戻る。
あとは、次へでインポートを続けても、キャンセルでも結構です。

インポ-ト定義に不具合があるようなら、
再度、手動でインポートし
インポ-ト定義画面で、「定義」ボタンを押せば呼び出せます。
修正して上書きしましょう。

ご健闘をお祈りします。

インポート定義が保存されていないようですが。

とりあえず
Private Sub 実行_Click()
  'TextConv Me.テキスト1, "テーブルA", "テーブル1"
  TextConv Me.テキスト1, "", "テーブル1"
End Sub
にすれば、インポートは出来ます。

インポート定義ができたら、その名前にしてください。

> ■全データ削除ではなく追加していきたい

'テキストコンバートルーチン
Sub TextConv(strFle As String, strInp As String, strTbl As String)
  If MsgBox("インポートしますか?", 4, "実行確認")...続きを読む

Q動画共有サイトのAPI使用は著作権の侵害になる?

動画共有サイト(YouTUBEやVeohなど)のAPIを利用して
自分のブログやサイトに芸能人のPV等の動画を掲載した場合
著作権の侵害 パブリシティ権の侵害にあたりますでしょうか?

※自分のサイトやブログに掲載しているのは
  あくまで、動画共有サイトのAPIを利用している。
※自分自身で動画共有サイトに動画のアップロードは行っていない。

Aベストアンサー

内容にもよるでしょうね。

原則としてYouTUBEやVeohなどの動画共有サイトには違法動画は無い、と確信して
その動画を自分のページで公開することは違法ではありません。

現実にYouTUBEはそれを認めています。

しかし児童ポルノ等の明らかに違法と判明している場合は
要注意です。

実際に警察が動いたことがあります。下記記事参照
http://d.hatena.ne.jp/mkuji/20100506/1273106912

お尋ねの「芸能人の動画」の場合も
それが著作権を侵害しているかどうかは
見ている者にはわかりませんから
その行為が違法性に問われることはない、と思います。

Q【Access2000】VBAコーディング Excelデータでエクスポート

いつもお世話になっています。

VBAにて、あるクエリをエクスポートしたいのですが。
クエリというのは、SQL文を書いています。

strSQL = "SELECT * FROM Q_tempソース"
DoCmd.TransferSpreadsheet acExport, 8, strSQL, "C:\temp.xls", True, ""

実行すると、
オブジェクト'SELECT * FROM Q_tempソース'が見つかりませんでした。オブジェクトが存在していること、名前やパスが正しいこと確認してください。
と表示されて処理が中断されます。

ポイントとしては、登録されているクエリではなく、SQL文でエクスポート内容を指定しているからかと思うのですが、
どのように修正すればよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

DoCmd.TransferSpreadsheetアクションのヘルプ読まれました?

そこの指定できるものは、

MSDNからの引用
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acactTransferSpreadsheet.asp

> Table Name
> テーブル名
中略
> Access 2000 では、このアクションを使用するときに、SQL ステート
> メントを使用してエクスポートするデータを指定することはできませ
> ん。SQL ステートメントを使用する代わりに、クエリを作成してから
> 、そのクエリの名前をこの引数に指定する必要があります。

で、テーブル名かクエリ名しか指定できません

> strSQL = "SELECT * FROM Q_tempソース"
strSQL = "Q_tempソース"

に変更すればよいと思いますが・・・Q_tempソースとは、テーブルですか?クエリーですか?

DoCmd.TransferSpreadsheetアクションのヘルプ読まれました?

そこの指定できるものは、

MSDNからの引用
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acactTransferSpreadsheet.asp

> Table Name
> テーブル名
中略
> Access 2000 では、このアクションを使用するときに、SQL ステート
> メントを使用してエクスポートするデータを指定することはできませ
> ん。SQL ステートメントを使用する代わりに、クエリを作成してから
> 、そのクエリの名前をこ...続きを読む


人気Q&Aランキング