VBA初心者です。
下記のソースで行ラベルを定義しているつもりなのですが、
なぜか行ラベルが定義されていませんというコンパイルエラーがでます。
よろしくお願いします。

Private Sub cmd_Click()
On Error GoTo Err_cmd_Click <---ここ

Dim inp As String
Dim cnt As Integer

inp = Forms![フォーム1]![日付] 'フォームの非連結テキストボックスと連動

For cnt = 1 To 31

'インポート・フルパス名作成
If (cnt) < 9 Then
strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & "0" & cnt + 1 & ".csv"
DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False
Else
strImportFileNameM = "M:\PdxLog\KabeKaKinA" & inp & cnt + 1 & ".csv"
DoCmd.TransferText acImportDelim, , "KabeDownLoad", strImportFileNameM, False
End If

Next cnt

'正常終了
Exit_cmd_Click:
End Sub

'エラー処理
Err_cmd_Click:
Beep
Select Case Err.Number
Case Else
MsgBox Err.Number & ":" & Err.Description
End Select
Resume Next
End Sub

A 回答 (1件)

Exit_cmd_Click: の次の行 の End Sub でプロシージャが終了してしまい、エラー処理が cmd_Click Subプロシージャの外に出てしまっているためです。



'正常終了
Exit_cmd_Click:
End Sub ⇒ Exit Sub のようにしてみてください。
    • good
    • 1
この回答へのお礼

さっそく試したところ解決しました。
回答ありがとうございました。

お礼日時:2002/04/02 16:40

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q自作DVDラベル

自作のDVDラベル(HEROなどのドラマラベルが必要)のサイトを教えてください

よろしくお願いします

Aベストアンサー

DVDのレーベル印刷のことでしょうか?
探してもなかなかないと思いますので作ったほうが手っ取り早いと思うので、
私の場合はGoogleイメージ検索で適当な画像を貰ってきてペイント等で作っています。


http://images.google.co.jp/images?hl=ja&q=HERO&btnG=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E6%A4%9C%E7%B4%A2&gbv=2

Q\_vti_pvt\service.lckが開けないため、書き込めません。

新旧二つのパソコンがLANでつないであります。

新:XP+officeXP(FRONTPAGEなし)
旧:98SE+office2000(FRONTPAGEあり)

これまで旧でweb作成をしていたのですが、旧の外付けだったHDを新に接続しました。

「MyWeb」もこのHDにあります。そこで、旧から新の外付けであるこのHDの「MyWeb」にあるwebを開こうとしたら、タイトルのようなエラーメッセージが出て開けません。

新の方からはこのwebは開けます。

また、LANによるファイルの共有は問題なく出来ます。

XP用のFRONTPAGEを購入せずに、旧でそのままweb作成をしたいのですが、このエラーを解決する方法はあるのでしょうか?

面倒なお尋ねで申し訳ありませんが、よろしくご教示下さい。

Aベストアンサー

以下のサイトが参考になればよいのですが・・・

参考URL:http://support.microsoft.com/kb/303255/ja

Q最近サイトを見ていて「DVDに自作のラベルを作って貼る」といゆ事に目覚

最近サイトを見ていて「DVDに自作のラベルを作って貼る」といゆ事に目覚めました。それで「かんたんデザイン工房」を使っていますが、印刷の時ラベルが5ミリ位前にずれてしまいます。色々サイトを見てこのずれを直す方法を探していますが、未だ解決していません。そこで、皆様のお知恵をお借りしたくて質問しました。この様な事に詳しい方がいらっしゃいましたらどうか、教えて下さい。
プリンタはエプソンPX-A650を使っています。どうぞ宜しくお願いします。
カテゴリーが間違っていたらすみません。

Aベストアンサー

印刷時のズレはプロパティで補正できますよ。
X軸方向に-0.3mm、Y軸方向に0.5mmといった具合です。
プリンタ固有のクセなので、補正値は一度決めたらあとは同じ補正値で大丈夫なことが多いですが、それでも印刷前に試し印刷をしたほうが万全でしょう。

官製ハガキなんかもそうですが、無補正で一発で決まったことなど皆無といっていいくらいにズレまくるのが普通です。

ラベルを貼ったCD-Rなんかは、カーステレオのフロントローディング方式のプレイヤーでは詰まってしまいますし、ラベルも結構高い(!!!)ので、資金に余裕ができたらレーベル印刷に対応したプリンタに買い換えたほうがいいみたい。
それでもズレるかもしれませんが…。

QVBA Private Sub Worksheet_Calculate()

「ユーザー定義関数」で計算されるセルがセルB2にある場合、シートモジュールの
Private Sub Worksheet_Calculate()で、他の再計算は無視し、そのユーザー定義関数が計算されたことを判断するためにはどのような記述をすればいいのでしょうか?

Aベストアンサー

こんにちは。

大分梃子摺っていらっしゃいますね。
今回のコードでシート名の変更を捕らえたければ
Calculateイベントではなく
ユーザー定義関数そのものでやったらどうですか。

間違いなくする為に、新しいブックで以下のコードをテストしてください。


簡単の為に、"sheet1"だけの変更に対応。

---------------------------------------------
(標準モジュール)


Public OldName As String 'パブリック変数


Function Sheetname(ByVal Target As Range) As String

 Application.Volatile
 Sheetname = Target.Parent.Name

 If OldName = "" Then
   OldName = Sheetname
 End If

 If OldName <> Sheetname Then
  MsgBox OldName & "が " & Sheetname & " に変更されました"
  OldName = Sheetname
  End If

End Function
---------------------------------------------

コードを書いたあと、Sheet1のA1に、=sheetname(A1) を入れておく


ようは、以前のシート名を保持しておき
ユーザー定義関数が再計算されるとき比較するだけです。

もちろん、Calculateイベントで同様のことをしてもOKですよね。

何回も言うようですが、このサンプルは、ユーザー定義関数の入っている、シート1つだけに対応です。

全てのシートに対応したい場合は、ちょっと考えてみてください。
以上です。
 

こんにちは。

大分梃子摺っていらっしゃいますね。
今回のコードでシート名の変更を捕らえたければ
Calculateイベントではなく
ユーザー定義関数そのものでやったらどうですか。

間違いなくする為に、新しいブックで以下のコードをテストしてください。


簡単の為に、"sheet1"だけの変更に対応。

---------------------------------------------
(標準モジュール)


Public OldName As String 'パブリック変数


Function Sheetname(ByVal Target As Range) As String

 Application...続きを読む

Q自作でDVDラベル作り

質問をする前に、類似の質問を片っ端から見てきました・・・が;
最近DVDラベル(ケースからDVD面まで)をキャプチャした画像で作っていたりしていたんですが
ここでどなたかが紹介されていた、「自作DVDラベル」http://tenma.dip.jp/Mylabels/DVD-VIDEO/
というサイトを見て、あまりの精度にビックリしました!
私が使っているのは「らくちんCDダイレクトプリントForCanon」なのですが
このソフトでも、あんなふうに作れちゃうものなんでしょうか?
例えば3枚の画像があり、1枚は背景画像に。もう2枚は背景を切り取って
1枚目の背景が透けるように小さく貼り付ける。
出来るんでしょうか?

Aベストアンサー

別に驚くほどではないかと思います

私も同じソフトでラベル印刷しています
透過gifは
irfanview
http://www.irfanview.com/
で作成し、重ね、CDプリントへ取り込んでいます

がんばってください!

Qaccess レコードソースを選択し、DoCmd.OpenFormする方法

Select Caseのフレームで、レコードソース(クエリ)を選択し、
そのソースを基にDoCmd.OpenFormする方法がわかりません。
よろしくお願いします。
----------------------------------------------------
Dim strSource As String
Dim Q1, Q2 As String
Dim stDocName As String
Dim フォーム1 As Form
stDocName = "フォーム1"
Q1 = "クエリ1"
Q2 = "クエリ2"

Select Case フレーム1
Case 1
strSource = Q1
Case 2
strSource = Q2
End Select

'stDocName.RecordSource = strSource '-----この文はこの位置でよいのでしょうか?
DoCmd.OpenForm stDocName, acFormDS
----------------------------------------------------
クエリ1,クエリ2は基になるテーブルが違いますが、フィールドは同一にしてあります。
ですのでフォーム1には、対応するテキストボックスは用意してあります。

Select Caseのフレームで、レコードソース(クエリ)を選択し、
そのソースを基にDoCmd.OpenFormする方法がわかりません。
よろしくお願いします。
----------------------------------------------------
Dim strSource As String
Dim Q1, Q2 As String
Dim stDocName As String
Dim フォーム1 As Form
stDocName = "フォーム1"
Q1 = "クエリ1"
Q2 = "クエリ2"

Select Case フレーム1
Case 1
strSource = Q1
Case 2
strSource = Q2
End Select

'stDocName.RecordSo...続きを読む

Aベストアンサー

<1>

Private Sub コマンド0_Click()
  DoCmd.OpenForm "フォーム1", acFormDS
  Forms("フォーム1").RecordSource = "クエリ" & Me.フレーム1
End Sub

<2>

Private Sub コマンド1_Click()
  DoCmd.OpenForm "フォーム1", acFormDS, , , , , "クエリ" & Me.フレーム1
End Sub

' ------------------------------------------
' [フォーム1] ロード時にレコードソース設定
' ------------------------------------------
Private Sub Form_Load()
  If Len(Me.OpenArgs & "") > 0 Then
    Me.RecordSource = Me.OpenArgs
  End If
End Sub

まあ、好き好きでしょうが<2>がOKのバージョンであれば<2>がお勧めです。

<補足>

ただ、WhereCondition を使うのが一般的かと思います。
全く異なるクエリであれば、それぞれに対応したフォームを用意した方がシンプルでは・・・。

<1>

Private Sub コマンド0_Click()
  DoCmd.OpenForm "フォーム1", acFormDS
  Forms("フォーム1").RecordSource = "クエリ" & Me.フレーム1
End Sub

<2>

Private Sub コマンド1_Click()
  DoCmd.OpenForm "フォーム1", acFormDS, , , , , "クエリ" & Me.フレーム1
End Sub

' ------------------------------------------
' [フォーム1] ロード時にレコードソース設定
' ------------------------------------------
Private Sub Form_Load()
  If Len(Me.OpenArgs & "") > ...続きを読む

Qアンパンマンの自作ラベル探しています。

アンパンマンのDVDに印刷できる自作ラベルを探しています。
http://www.atsuko-labels.jp/index.html
以外で他にないでしょうか?
ここに載ってない画像が欲しいのです。

探してるのは
ドキンちゃんのドキドキカレンダー
みんな集まれ アンパンマンワールド
空飛ぶ絵本とガラスの靴
アンパンマンとゆかいな仲間たち
くろゆき姫ともてもてバイキンマン
バイキンマンの逆襲
バイキンマンと3倍パンチ
などです・・。
宜しくお願い致します。

Aベストアンサー

>アンパンマンのDVDに印刷

というのがよくわからないのですが、TV放送されたものを録画したDVDということでしょうか?
違法コピーの可能性があると回答が得られないと思うので、補足をお願いします。

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 という変数を渡しています...続きを読む

Q自作のディスクラベルを作りたいです。

簡単に手に入るフリーソフトで作ったのですが、拡張子が独自の物で、他のPCで開くことができません。
よくブログなどに自作ラベルを載っけているひとがいますが、そのような方はどういった方法でJpegなどの通常の拡張子で保存しているのでしょうか。

「こんなソフトがあるよ」とか「こうすれば?」とかあれば、教えていただけれうとありがたいです。
ソフトの場合はできるだけフリーでお願いします。

Aベストアンサー

普通は画像製作ソフトで120mmX120mmのパレットを作って
お絵かきした後 120mmの円でマスクをかけてJPEG保存です。

Q実行時エラー'-2147467259(80004005)':

エクセルからADOでアクセスに繋ごうとしたときに
実行時エラー'-2147467259(80004005)':
マシン'マシン名'のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。

というエラーが出てしまいます。

書いているコードは以下です。

Public cn As ADOdb.Connection
Set cn = New ADOdb.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"



test.mdb自体はテーブルもクエリもフォームも何も開いていない状態です。
一度アクセスを終了させて再起動させればうまくできるのですが、何が原因でこのメッセージが出るのでしょうか?
もしわかれば教えてください。
よろしくお願いします。

Aベストアンサー

Accessで、test.mdbを開いた状態(テーブルも、クエリも、フォームも何も開かない状態)で、ExcelからADOで接続しようとすると、
「-2147467259"は既に使用されているので、使用できませんでした。」
というエラーが再現されました。(当方Office2000Pro)
そういうものなのでしょう。
何をなさりたいのですか?
AccessからExcelを起動して、データの移し替えをしたり、レポート代わりに印刷させたりという方法ではダメなのでしょうか?
何をしたいかという、切り口で質問をされてはいかがですか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング