ACCESS vbaでレポート名の変更をプログラムでできるんでしょうか?

A 回答 (1件)

DoCmd.rename "Old Report Name", acReport, "New Report Name"


で行けるんじゃないかな? 
https://msdn.microsoft.com/en-us/library/office/ …
docmdをvbaと呼ぶかどうかは、よくわからないけど、
そういう意味でのVBAなら、ADOXでも可能だと思う。
    • good
    • 0

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

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

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

QAccess フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表

Access フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表示させることはできるのでしょうか?
方法があればご教授ください。
よろしくお願いします(❁ᴗ͈ˬᴗ͈)

Aベストアンサー

>Dim myDB As Databaseでコンパイルエラーで『ユーザ定義型は定義されていません。』のエラーが出るのですがどうしたら良いでしょうか…?

Dim myDB As Database → Dim myDB As DAO.Database
Dim myTB As TableDef → Dim myTB As DAO.TableDef
このように DAO. を付けてみたらどうですか?

それでもエラーが出るようでしたら、Accessのバージョンと、VBAエディタ のツールにある「参照設定」で
チェックの入っている項目を教えてください。

Access2000か2002でしたら、参照設定で Microsoft DAO 3.6 Object Library にチェックが入っていないのかも。。。。

QSQL文で パラメータが少なすぎます エラー

Access2016 のVBAについて教えてください。
例えば以下のようなテーブルがあるとします

Tテーブル(各フィールドは全てテキスト型)
│ 伝票 │  日付  │ 商品 │ 備考 │
  D001  2017/06/15  商品A  備考A
  D002  2017/07/02  商品B  備考B
  D003  2017/05/30  商品C  備考C
  D004  2017/07/19  商品D  備考D
  D005  2017/07/10  商品E  備考E

Tテーブルの日付フィールドから年月を取り出して(例 D002 ならば ”201707”)、
年月が201707のレコードを抽出するようなSQL構文を記述してみました。
-------------------
mySQL = "SELECT 伝票, 日付, 商品, (Left(日付,4) & Mid(日付,6,2)) AS 年月 FROM Tテーブル "
mySQL = mySQL & "WHERE 年月='201707';"

Set DB = CurrentDb
Set RS = DB.OpenRecordset(mySQL, dbOpenSnapshot)

RS.MoveFirst
Do Until RS.EOF
Debug.Print RS!伝票 & " " & RS!日付 & " " & RS!商品 & " " & RS!年月
RS.MoveNext
Loop
-----------------

ここで1行目のSQL構文までではうまくレコードセットができたのですが、
2行目の WHERE ~ を追記すると以下のエラーとなってしまいます。

実行時エラー ’3061’
パラメーターが少なすぎます。1を指定してください

このエラーを無くすためには、どのようにすればよいのでしょうか?
よろしくお願いいたします。

Access2016 のVBAについて教えてください。
例えば以下のようなテーブルがあるとします

Tテーブル(各フィールドは全てテキスト型)
│ 伝票 │  日付  │ 商品 │ 備考 │
  D001  2017/06/15  商品A  備考A
  D002  2017/07/02  商品B  備考B
  D003  2017/05/30  商品C  備考C
  D004  2017/07/19  商品D  備考D
  D005  2017/07/10  商品E  備考E

Tテーブルの日付フィールドから年月を取り出して(例 D002 ならば ”201707”)、
年月が201707のレコード...続きを読む

Aベストアンサー

WHERE句では列別名が使用できません。決まり事です。
シコシコ書いてください。

QAccessのフォームからレポートを立ち上げるコマンドボタンについて教えてください。 テーブル(住所

Accessのフォームからレポートを立ち上げるコマンドボタンについて教えてください。
テーブル(住所録)の中の1つのレコードを12面あるラベルシートの好きな位置に印刷するものです。
検索用のフォームと印刷用のレポートを用意し、フォームに表示されてるレコードのみをレポートのプレビュー画面で必要な位置に配置するようにしました。
フォームで作成したコマンドボタンはデザインから作ったもので、作成したのちプロパティから埋め込みマクロのビルダーで、Where条件式に="[氏名]="&"'"&[氏名]&"'"と入れました。これだとうまく動くのですが、問題は1人の人が複数の住所を待っている場合です。なので、テキスト型の[氏名]のフィールドではなく、テーブルの主キーにしてあるオートナンバーのフィールド名[ID]を氏名の代わりに使ってみました。すると、ボタンをクリックすると抽出条件でデータ型が一致しませんとの表示が出るんです。オートナンバーを使えない理由がわからないのと、設定がよくないのかがわからないので、ご存知の方教えていただけますでしょうか。よろしくお願いします。

Accessのフォームからレポートを立ち上げるコマンドボタンについて教えてください。
テーブル(住所録)の中の1つのレコードを12面あるラベルシートの好きな位置に印刷するものです。
検索用のフォームと印刷用のレポートを用意し、フォームに表示されてるレコードのみをレポートのプレビュー画面で必要な位置に配置するようにしました。
フォームで作成したコマンドボタンはデザインから作ったもので、作成したのちプロパティから埋め込みマクロのビルダーで、Where条件式に="[氏名]="&"'"&[氏名]&"'"と入れまし...続きを読む

Aベストアンサー

"'"が必要なのはテキスト型のフィールドの場合です。

="[氏名]="&"'"&[氏名]&"'"

="[ID]="&[ID]
になります。

QAccessでレポートの項目をVBAで変更したい

Accessのレポートで年次集計を項目が可変になるため、VBAで書き換えるようにしたのですが、うまく出来ません。
お心当たりのかたいらっしゃいましたら教えて頂けないでしょうか。

フォームの概要(売上集計)
    OO年 OO年 OO年
商品A 1,000 2,000 3,000 
商品B 1,500 2,500 3,500
商品C 2,500 3,500 4,500
※年は可変です

次のようにするとフォームが開いていないと言ったエラーが出ます。
stDocName = "年別売上集計レポート"
Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
DoCmd.OpenReport stDocName, acPreview, "", [フィルタ]

又次のようにするとエラーは出ませんが、ラベルは書き換わりません。
stDocName = "年別売上集計レポート"
DoCmd.OpenReport stDocName, acHidden, "", [フィルタ]
Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
DoCmd.OpenReport stDocName, acPreview, "", [フィルタ]

Accessのレポートで年次集計を項目が可変になるため、VBAで書き換えるようにしたのですが、うまく出来ません。
お心当たりのかたいらっしゃいましたら教えて頂けないでしょうか。

フォームの概要(売上集計)
    OO年 OO年 OO年
商品A 1,000 2,000 3,000 
商品B 1,500 2,500 3,500
商品C 2,500 3,500 4,500
※年は可変です

次のようにするとフォームが開いていないと言ったエラーが出ます。
stDocName = "年別売上集計レポート"
Reports(stDocName).ラベル1.Caption...続きを読む

Aベストアンサー

今しがた思い返してみたのですが、
意図しているところを探ってみますと下のコードでもまずいと思います。

というのもOpenReport自体がレポートのロード命令であり、
acPreviewとacHiddenとは別のレポートだと思われるからです。
(同じレポートを連続で開こうとするとどうなるか分かりません)

Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
この一行をレポートのopen、ないしそれに該当するイベントに記述すれば
上記のことは回避できますし、
わざわざhiddenで開いてラベルをセットする必要もありません。

意図をはずしていたらご容赦を。

Qエクセルのバージョンアップによるマクロ不調

エクセル2007にて、for...next構文を含むマクロをフォームボタンに登録し使用していました。
カウンタ変数に3から25を代入しています。
(3行目から25行目を処理するため)

しかしエクセル2016にパソコンが変わり、ボタンを押すと3行目だけ処理しマクロが終わってしまいます。
ボタンを押す代わりに、VBEから直接実行すると問題なく最後まで繰り返し処理されます。

バージョンアップにより何か不都合があるのでしょうか。お教え下さい。

Aベストアンサー

#2の回答者です。
長文でまとまっていませんが、私の考えたレポートです。

こちらは、Excel 2013ですが、一応、通して動かしてみて完結はするのですが、途中、何か良くわからない動きがあります。このコードには、どちらかというと「気になる」の部分はあります。しかし、それ以上に、ハングしたかなって思わせるような状態で、マクロが終了しているのです。それが何か今のところは分かりません。
どうも、ステップで進める分には、まったくその問題はみられません。

そのコードで問題になる部分は、2つですが、結論からすると、直しても変わりませんでした。
> Dim h As Integer 'データ集積シートの最終行
これは、Integer ではなくて、Long 型のほうがよいです。
ついでに、Dim i As Long '入力表シートの行数 もLong型のほうがよいのは、PCの扱うデータは、32bit が主なので、Integer 型は、一旦、Long型に変換しているので、なるべく、Integer 型は使わないほうがよいとしています。

>h = Worksheets("集積_税制").Range("A65536").End(xlUp).Row + 1
これは、最初、ループの外で行って、書き込みが完了したら、
h = h+1

とします。ただ、それでも、問題はほとんど改善されませんでした。
ふつうは、マクロが抜けるという現象からしても、私の試した感じでは、どうやらメモリリークの現象に似ています。アンタッチャブルな部分に触れると、マクロは急停止してしまいます。

なお、Select Case  [値]  ←ここの値は、文字列でも数値でも構わないです。ただ、コードを見る限りは、数値になっているようですので、それ自体は問題なかろうと思います。

ボタンは、フォームオブジェクトのボタンをお使いになっているものだとは思いますが、ActiveX ですと、そのコードですと、少し問題が出る可能性はあります。

それで、私なりの書き方でコードを書いてみましたので、そちらで診ていただけませんか?

'// 基本的には、標準モジュールです。
Sub Integrated_Taxes()
 Dim i As Long '入力表シートの行数
 Dim h As Long 'データ集積シートの最終行
 Dim j As Long '新しく加えた変数
 Dim acSh As Worksheet '現在の表
 Dim iTaxSh As Worksheet
 '***設定****
 Set acSh = ActiveSheet 'このシートは「入力表_税制」か?
 Set iTaxSh = Worksheets("集積_税制")
 
 Application.ScreenUpdating = False
 h = iTaxSh.Cells(Rows.Count, 1).End(xlUp).Row + 1
 With acSh
  For i = 3 To 25 '入力表の入力可能行数
   If .Cells(i, 3).Value > 0 And .Cells(i, 3).Value < 4 Then
    j = .Cells(i, 3).Value + 3
    iTaxSh.Cells(h, 1).Resize(, 3).Value = .Cells(i, 7).Resize(, 3).Value
    iTaxSh.Cells(h, j).Value = .Cells(i, 10).Value
    h = h + 1
   End If
  Next i
 
 End With
 Application.ScreenUpdating = True
 
 iTaxSh.Select
 MsgBox "取り込みが終了しました!"
 Worksheets("入力表_税制").Select
 Range("B1").Select

End Sub
'//

以上です。

#2の回答者です。
長文でまとまっていませんが、私の考えたレポートです。

こちらは、Excel 2013ですが、一応、通して動かしてみて完結はするのですが、途中、何か良くわからない動きがあります。このコードには、どちらかというと「気になる」の部分はあります。しかし、それ以上に、ハングしたかなって思わせるような状態で、マクロが終了しているのです。それが何か今のところは分かりません。
どうも、ステップで進める分には、まったくその問題はみられません。

そのコードで問題になる部分は、2つですが...続きを読む

Qマクロの「SaveAs」でエラーが出るのを解消したいです

下記の↓↓↓↓↓↓部分でエラーが出ます。

「実行時エラー '1004':

'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト」

ちょろちょろマクロ組んでたのですが単純な
エラーで解決が出来ない状態です。
どなたかマクロ先生に教えて頂ければと思いますので
よろしくお願いします。

'指定額の抽出
Private Const MESSAGE_FINISH = "予算出力処理が完了しました"

Sub 予算データテキスト出力()
Dim ws1
Set ws1 = Worksheets("チェック一覧")
Dim m As Long
m = 3
Dim ws2
Set ws2 = Worksheets("予算データ")

Dim sm As String

Dim ws3

Dim sn

'チェック一覧シートのNo.が無くなるまで処理する
Do Until ws1.Cells(m, 1) = ""

Application.ScreenUpdating = False


If ws1.Cells(m, 4) = "" Then
'ナンバーがある場合は部門等をチェック一覧(ws1)→フォーム(ws2)に転記する
Else
ws2.Cells(2, 2) = ws1.Cells(m, 4)

'各部署のシート名をsmにセットする
sm = ws1.Cells(m, 2)
Set ws3 = Worksheets(sm)

'予算フォーム(ws2)の行変数「s」と各部署シート(ws3)の行変数「n」
Dim s
s = 4
Dim n
n = 9
Dim cnt
cnt = 1

Do Until n = 44
If ws3.Cells(n, 23) = 0 Then

'各数値等を各部署のシート(ws3)→フォーム(ws2)に転記する
Else

ws2.Cells(s, 1) = cnt
ws2.Cells(s, 3) = 6100
ws2.Cells(s, 4) = 0
ws2.Cells(s, 5) = ws3.Cells(3, 4)
ws2.Cells(s, 6) = ws3.Cells(5, 8)

ws2.Cells(s, 7) = ws3.Cells(n, 4)
ws2.Cells(s, 8) = ws3.Cells(n, 24)
ws2.Cells(s, 9) = ws3.Cells(n, 25)
ws2.Cells(s, 10) = ws3.Cells(n, 26)
ws2.Cells(s, 11) = ws3.Cells(n, 27)
ws2.Cells(s, 12) = ws3.Cells(n, 28)
ws2.Cells(s, 13) = ws3.Cells(n, 29)
ws2.Cells(s, 14) = ws3.Cells(n, 31)
ws2.Cells(s, 15) = ws3.Cells(n, 32)
ws2.Cells(s, 16) = ws3.Cells(n, 33)
ws2.Cells(s, 17) = ws3.Cells(n, 34)
ws2.Cells(s, 18) = ws3.Cells(n, 35)
ws2.Cells(s, 19) = ws3.Cells(n, 36)
s = s + 1
cnt = cnt + 1

End If

n = n + 1

Loop
'予算データに転記されたので出力する

ws2.Copy

' ↓↓↓↓↓この下の「SaveAs」がエラーになります。↓↓↓↓↓

ActiveWorkbook.SaveAs Filename:="D:\Library\Desktop\新しいフォルダー\" & ws2.Cells(s, 5).Value & ".xlm"

ActiveWindow.Close

ActiveWorkbook.Close savechanges:=False


'フォームに転記した情報をクリア
ws2.Select
Range(Cells(4, 1), Cells(44, 19)).Select
Selection.ClearContents


End If

m = m + 1


Loop

ws1.Select

MsgBox MESSAGE_FINISH

End Sub

下記の↓↓↓↓↓↓部分でエラーが出ます。

「実行時エラー '1004':

'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト」

ちょろちょろマクロ組んでたのですが単純な
エラーで解決が出来ない状態です。
どなたかマクロ先生に教えて頂ければと思いますので
よろしくお願いします。

'指定額の抽出
Private Const MESSAGE_FINISH = "予算出力処理が完了しました"

Sub 予算データテキスト出力()
Dim ws1
Set ws1 = Worksheets("チェック一覧")
Dim m As Long
m = 3
Dim ws2
Set ...続きを読む

Aベストアンサー

試していませんが、
ActiveWorkbook.SaveAs Filename:="D:\Library\Desktop\新しいフォルダー\" & ws2.Cells(s, 5).Value & ".xlm"

のファイルの拡張子は、".xlsm"が正しいかと。

Qアクセス2010 クエリが遅い 300万行ほどの1tblがあり、これだけで1.5GBくらい容量を食っ

アクセス2010 クエリが遅い

300万行ほどの1tblがあり、これだけで1.5GBくらい容量を食っています。
オートIDを振っています。
このテーブルを年月などを基準に分割して行数を減らさないとダメでしょうか?
よい方法がありましたら、教えてください。

Aベストアンサー

最適化はしてますよね。
で、クエリですが、300万のデータ全てに毎回計算させたら時間がかかるのは当たり前ですよね。
計算させるならその時必要なデータにのみするとか、工夫次第で処理は全然違います。
なんなら都度必要なデータのみをワークテーブルにしてもいいと思います。

QVBAか関数でできるのでしょうか?

いつもこちらで皆さんに助けていただいてます。昨日質問しましたが画像が張り付けられていなかったので再度質問です。

”仕入表”タブに入力されたデータが横並びのデータです。
例えば、商品コード/品名/価格/色/入荷数 の並び順で、入力されています。一つの品番に対して色数は1から10個あり、色/入荷数/色/入荷数という風に構成されてます。

そこでこちらでお世話になり、仕入表に入力したデータを縦並びに色別で”在庫表”タブに表を作れるようなVBAを教えていただきました。

画像の仕入表は上の表で、下の表が在庫表に転記されたときの例です。
因みにその時のVBAはこちらです。


Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Application.Calculation = xlCalculationManual
Set wS = Worksheets("仕入表")
With Worksheets("在庫表")
'//E列で「在庫表」Sheetの最終行取得★
lastRow = .Cells(Rows.Count, "E").End(xlUp).Row
'//「在庫表」SheetにデータがあればD列2行目~I列最終行データを一旦消去
If lastRow > 1 Then
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).ClearContents
End If
cnt = 1
For i = 3 To wS.Cells(Rows.Count, "A").End(xlUp).Row '//「仕入表」Sheetの3行目~A列最終行まで
For j = 5 To wS.Cells(i, Columns.Count).End(xlToLeft).Column Step 2 '//E列~i行最終列まで2行毎★
If wS.Cells(i, j) <> 0 Then '//画像で「0」が表示されているので「0」以外を追加★
cnt = cnt + 1
'//最初のデータ行のみ「仕入表」Sheetの日付をD列に表示★
If j = 5 Then
.Cells(cnt, "D") = wS.Cells(i, "A")
End If
.Cells(cnt, "E") = wS.Cells(i, "B") '//B列に「コード」を表示
.Cells(cnt, "F") = wS.Cells(i, "C") '//F列に「商品名」を表示
.Cells(cnt, "G") = wS.Cells(i, "D") '//G列に「下代」を表示
.Cells(cnt, "H") = wS.Cells(i, j) '//H列に「色」を表示
.Cells(cnt, "I") = wS.Cells(i, j + 1) '//I列に「数」を表示
End If
Next j
Next i
'//最後にD列の表示形式(日付)を「在庫表」SheetのA3セルの書式に設定★
.Range("D1", Cells(Rows.Count, 4).End(xlUp)).NumberFormatLocal = wS.Range("A3").NumberFormatLocal
End With
Application.Calculation = xlCalculationAutomatic
End Sub '//この行まで


そこで、また新たにもしできるなら教えていただきたいことが出てきました。
仕入表タブのC列に出荷した商品が出たら「出荷済」と入力していますが(画像ではA列から埋まってますが実際はA~Cは空白にしてます)、”出荷済”にしたときに在庫表タブの同じ品番の商品すべて(日付~すべての色の個数まで)を黄色の色付けにすることはできますか?
もしできるとすごく楽になるのですが・・・
それではよろしくお願いします。

いつもこちらで皆さんに助けていただいてます。昨日質問しましたが画像が張り付けられていなかったので再度質問です。

”仕入表”タブに入力されたデータが横並びのデータです。
例えば、商品コード/品名/価格/色/入荷数 の並び順で、入力されています。一つの品番に対して色数は1から10個あり、色/入荷数/色/入荷数という風に構成されてます。

そこでこちらでお世話になり、仕入表に入力したデータを縦並びに色別で”在庫表”タブに表を作れるようなVBAを教えていただきました。

画像の仕入表は上の表で...続きを読む

Aベストアンサー

No6です。
以下の箇所を修正しました。前回のマクロをこれで入れ替えてください。
1)エラー13で型が一致しません。・・・この対策
色の箇所が0以外なら処理しているのを、空白以外なら処理するようにしました。
2)今更ですが黄色の色付けを日付の列だけにすることは可能でしょうか。
日付の列だけ黄色にしました。
-------------------------------------------------------
Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Dim wns As Worksheet
Application.Calculation = xlCalculationManual
Set wS = Worksheets("仕入表")
Set wns = Worksheets("納品仕訳")
Worksheets("在庫表").Activate '追加
With Worksheets("在庫表")
'//E列で「在庫表」Sheetの最終行取得★
lastRow = .Cells(Rows.Count, "E").End(xlUp).Row
'//「在庫表」SheetにデータがあればD列2行目~I列最終行データを一旦消去
If lastRow > 1 Then
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).ClearContents
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).Interior.Pattern = xlNone
End If
cnt = 1
For i = 3 To wS.Cells(Rows.Count, "A").End(xlUp).Row '//「仕入表」Sheetの3行目~A列最終行まで
For j = 5 To wS.Cells(i, Columns.Count).End(xlToLeft).Column Step 2 '//E列~i行最終列まで2行毎★
If wS.Cells(i, j) <> "" Then '//画像で「0」が表示されているので「0」以外を追加★ '修正
cnt = cnt + 1
'//最初のデータ行のみ「仕入表」Sheetの日付をD列に表示★
If j = 5 Then
.Cells(cnt, "D") = wS.Cells(i, "A")
End If
.Cells(cnt, "E") = wS.Cells(i, "B") '//B列に「コード」を表示
.Cells(cnt, "F") = wS.Cells(i, "C") '//F列に「商品名」を表示
.Cells(cnt, "G") = wS.Cells(i, "D") '//G列に「下代」を表示
.Cells(cnt, "H") = wS.Cells(i, j) '//H列に「色」を表示
.Cells(cnt, "I") = wS.Cells(i, j + 1) '//I列に「数」を表示
If wns.Cells(i + 2, "C").Value = "出荷済" Then
.Range("D" & cnt).Interior.Color = 65535 '修正
End If
End If
Next j
Next i
'//最後にD列の表示形式(日付)を「在庫表」SheetのA3セルの書式に設定★
.Range("D1", Cells(Rows.Count, 4).End(xlUp)).NumberFormatLocal = wS.Range("A3").NumberFormatLocal
End With
Application.Calculation = xlCalculationAutomatic
End Sub '//この行まで
-------------------------------------

No6です。
以下の箇所を修正しました。前回のマクロをこれで入れ替えてください。
1)エラー13で型が一致しません。・・・この対策
色の箇所が0以外なら処理しているのを、空白以外なら処理するようにしました。
2)今更ですが黄色の色付けを日付の列だけにすることは可能でしょうか。
日付の列だけ黄色にしました。
-------------------------------------------------------
Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Dim wns As Works...続きを読む

QAccessでレコードを別テーブルへコピーするには

AccessのVBAを教えてください。
「名簿1」というテーブルがあり、そのテーブルの1つのレコードを「名簿2」という別テーブルに移動させたいです。

「名簿検索」フォームがあり、「名簿1」のデータを検索して表示させることができます。
その表示させたある特定のレコードを、「移動」というボタンを押すと「名簿2」へ移動させるような作りにしたいです。
「名簿1」と「名簿2」は全く同じ構造のテーブルです。

初心者のため、一番簡単な方法でやりたいです。
レコードを「名簿2」へコピーし、その後「名簿1」のレコードを削除しようと思ったのですが、なかなかうまくできません。
insert into を使ってみたのですが、テーブルのデータ全てがコピーされてしまいます。

Access2010を使用しています。
よろしくお願いいたします。

Aベストアンサー

No.1です
以下を追加してみてください(変数名は任意です)
Dim RSF As Recordset ← フォームに表示されているレコード用
DIM I As Integer    ← カウンター用の変数

Set RSF = Me.Recordset でRSFにフォームに表示されているレコードセット

RS.AddNew から RS.Update の部分を以下に変更します

RS.AddNew
 For I = 0 To フィールドの数-1 ← フィールド数が20ならば19
  RS.Fields(I) = RSF.Fields(I)
 Next I
RS.Update

これでコピーできます。

QACCESS2010について

昨日までは通常通り、データ入力できていました。
突然、データ入力画面のボタンを押すと”Microsoft Accessは動作を停止しました”、”問題が発生したため、プログラムが正しく動作しなくなりました。プログラムが閉じられ、解決策がある場合はWindowsから通知されます”となり、プログラムが終了となります。
特に変更していないので、原因が不明です。
どなたか教えてください。宜しくお願いします。

Aベストアンサー

WINDOWS UPdateかな
https://www.microsoft.com/ja-JP/download/details.aspx?id=13255
データベースエンジンを再導入してみてください。
64/32ビット版がありますのでご注意を
だめならアクセスの再インストールです。


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

人気Q&Aランキング