Access2000VBAでEscキーを2回押すと入力していた内容が消えたんです。
なぜ?どうして?教えてください!ぜひお願いします。
出来れば「Esc」キーを禁止するにはどういった方法があるのか教えて
ください。初歩的な質問ですみません・・・。

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

A 回答 (2件)

ユーザーフォーム上のテキストボックスでのお話だ


ということだと勝手に解釈して、回答します。
KeyDownで、KeyCodeに0を設定すると、キーの入力
を取り消すことができます。

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyEscape Then
KeyCode = 0
End If
End Sub

こんな感じです。
    • good
    • 0
この回答へのお礼

お礼返信が遅れ申し訳ございません
私の説明不足で2回ものご教授申し訳ありませんでした。
おかげさまで何とかESCキーを禁止できました。
本当にありがとうございました。

お礼日時:2001/08/07 09:38

こんなんじゃだめでしょうか?



Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
''ESCを入力したら入力しないことにする
If KeyAscii = 27 Then SendKeys ""
End Sub

それか後はKEYプレビューを無効にする。

この回答への補足

Formの「キー入力時」プロパティに記述してデパッグして見たのですが、
「ESC」キーを押した瞬間にデータが消えているみたいです。そのあとに
ご教授頂いたプログラムが動き始めました。
Keyプレビューは「はい」にして「Fキー」を割り当てている為に無効に
出来ないのですが、私のやりかたが可笑しいのでしょうか?

補足日時:2001/08/04 17:09
    • good
    • 0
この回答へのお礼

おおぉっ・・・ありがとうございます!
すばらしい最高です。大変参考になりました。
こんな初心者に回答頂き感謝しております。

お礼日時:2001/08/04 17:03

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

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

関連するカテゴリからQ&Aを探す

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

QAccess2000VBAで全角数字を入力禁止にしたいのですが・・・

お世話になっております。
実は入力項目で、禁止文字を設定したいのですがどのような方法
があるのでしょうか?たとえば全角数字と半角カタカナを入力禁止
としたい場合なのですが・・・
また「この初心者が!」とのお怒りを承知で宜しくお願い致します。

Aベストアンサー

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("1") Then
KeyAscii = 0
End If
End Sub

というコードを書けば全角1が入力できなくなります
後は力業で(笑)

ただ、これはVB6.0 サービスパック5でテストしたので
、というか今作ってたのでアクセスでの動作はどうだろう??
と思いますが試してみてください

ミソは KeyAsciiとAscだと思います
うまくいったらいいですね

QAccessから主キーの無いOracleテーブルにVBAで主キー設定付のODBC接続するには

Oracle7--------------- Access97
Workgroup Server
Release 7.3.2.2.1

TABLE_A----------------ODBC接続(リンクテーブル)    
項目1
項目2
項目3
項目4

項目1~項目4は
空白レコードがあり
主KEYが張れない

********************************************************************
主キーの作成出来ないオラクルテーブルがあります。

Access97からODBC接続を作成する時は

(1)マニュアルであれば
  対象テーブルに主キーが無ければ
任意の10項目を仮の主キーとして設定出来ますが

(2)VBA(自動?)で リンク張ると

Dim tab01 As TableDef
 Dim db01 As Database
 Dim strTABname As String

strTABname = TABLE名
Set db01 = CurrentDb
Set tab01 = db01.CreateTableDef(UserName & "_" & strTABname, dbAttachSavePWD)
tab01.SourceTableName = UserName & "." & strTABname
tab01.CONNECT = "ODBC;DSN=****;UID=" & UserName & ";PWD=" & Password & ";ConnectString=con;"
db01.TableDefs.Append tab01

主キー設定の無いODBC接続が出来て
  データの更新などが出来なくなります。

VBAでも仮の主キー設定付きのODBC接続は
 出来ないでしょうか?

Oracle7--------------- Access97
Workgroup Server
Release 7.3.2.2.1

TABLE_A----------------ODBC接続(リンクテーブル)    
項目1
項目2
項目3
項目4

項目1~項目4は
空白レコードがあり
主KEYが張れない

********************************************************************
主キーの作成出来ないオラクルテーブルがあります。

Access97からODBC接続を作成する時は

(1)マニュアルであれば
  対象テーブルに主キーが無ければ
任...続きを読む

Aベストアンサー

手元にACC97は無いのですが、擬似インデックスを作成すれば可能だったはず。

作成方法は通常のINDEX作成と変わりはありません。

db01.Execute "CREATE INDEX ・・・・;"

QAccess2000でAccess97のテーブルを利用する方法

Access97からAccess2000へのコンバージョンを行っています。様々な問題が発生しているのですが、解消困難な問題があり質問させて頂きます。
まず、背景・環境など長くなりますが、説明します。
自社で開発したプログラムの97→2000への移行を行っていますが、予算とマシンスペックの問題で、ユーザーのOS(95、98、2000、XP)、Office(97、2000)共に混在する状況となります。また、一人のユーザーが複数の事業所で仕事をしており、使用するマシンも一定ではなく、一台のマシンを複数のユーザーが使用します。
問題となっているプログラムは、プログラム本体とデータ部分がそれぞれ別のmdbファイルとして構成されており、本体からテーブルのリンクでデータ用mdbを利用しています。
また、ワークグループを利用しパスワードによるアクセス管理を行っています。
データ部分は、他のプログラムでも利用しており、そのプログラムも97版と2000版が混在しています。
そのため、データmdbは97で利用したいと思っています。
ところが、2000のプログラムでDlookup関数を使用し、97データの取得結果が正しくありません。途中で切れたり、余計な文字が後ろについてしまいます。リンクテーブルを選択クエリにしても同じでした。

(正)東京三菱銀行→(誤)東京三菱銀行??○!!
(正)123456→(誤)1234
Dlookup("フィールド名" & "","リンクテーブル名")
という風に文字列の後に空文字を加えると正しく表示されます。
ただ、すべてのDlookup関数を調べ処理を追加するには数も多く、今後の保守に問題が残ります。
また、データを2000に変換すると問題が発生しません。しかし、互換のため、97形式でデータmdbを作成することも考えたのですが、設定したワークグループセキュリティが解除されることも判明しています。
解決方法か関連情報をお持ちの方、ご教授お願いします。

Access97からAccess2000へのコンバージョンを行っています。様々な問題が発生しているのですが、解消困難な問題があり質問させて頂きます。
まず、背景・環境など長くなりますが、説明します。
自社で開発したプログラムの97→2000への移行を行っていますが、予算とマシンスペックの問題で、ユーザーのOS(95、98、2000、XP)、Office(97、2000)共に混在する状況となります。また、一人のユーザーが複数の事業所で仕事をしており、使用するマシンも一定ではなく、一台のマシンを複数のユーザーが使用します。
...続きを読む

Aベストアンサー

DLookUpはAccessのライブラリの関数です。バージョンの違うDBに、バージョンの違う同名のAccess関数を使用するのはどうかと、、、

SQL文で問い合わせても一緒ですか?

可能であれば、ADOを利用することをお勧めします。

QAccess2000 を 2000serverに導入して何か支障ある?

OS:windows2000 server sp2
office2000(access 2000) sr-1
です。

特別、windows2000serverにインストールして
稼動させる事で何か支障があるといった事は
ありますでしょうか?

Aベストアンサー

Access2000をWndows2000やXPに入れたら、一部のヘルプが表示されないという事態になりました。
もしかしたら2003サーバーでも同じようなことがあるかもしれません。

マイクロソフト サポート技術情報 - 249065
http://support.microsoft.com/default.aspx?scid=kb;ja;249065
で解決できました。

サポート技術情報 249065には「これはSR-1で治ってます」とされていましたが、僕のSR-1は正真正銘正規版なのに何故か治ってませんでした。他にも治したとかいってて治ってない不具合があります。他の人は治ってるのかな?(^^)

ひごろの行いが悪いとエラーになるんですかねえ・・・・?(^^)shigechiiさんには不具合が出ないことを祈ります。

実際に使う分には多分ですが、特に問題はないと思います。

Q初歩的な抽出方法に関して(Access)

A社とB社の管理コードや売上金額を(A社テーブル、B社テーブルと存在します。)
クエリで抽出する際に、
A社   B社
0001   0002
0002   0003
0003   0005
0004   0006
0006   0007
0009   0008

となっている場合、
クエリによって
0002
0003
0006

なるように抽出条件を設定したいのですが。
どなたかこの初歩的な質問に教えていただくことが出来ますでしょうか?

Aベストアンサー

シート1にA社のデータをシート2にB社のデータがあるとして、2社に共通のデータがあればシート3にそのデータを示すマクロを下のように作りました。データ数はここでは仮に6個としてあります。



Sub Macro5()
'
' Macro5 Macro
' マクロ記録日 : 2008/4/10 ユーザー名 :
'

'
Dim my1gyo As Integer, mydata As String, myrange As Range, my2gyo As Integer, mydata2 As String, mydata3 As String
For my1gyo = 1 To 6
Worksheets("sheet1").Activate
mydata = Cells(my1gyo, 1)
'MsgBox mydata
Worksheets("sheet2").Activate
For my2gyo = 1 To 6
If Cells(my2gyo, 1).Value = mydata Then

'MsgBox mydata2
Worksheets("sheet3").Activate
Cells(my1gyo, 1) = mydata

Exit For
Else
End If
Next my2gyo
'MsgBox VLookup(mydata, myrange, 2, False)
Next my1gyo

'

'
End Sub

シート1にA社のデータをシート2にB社のデータがあるとして、2社に共通のデータがあればシート3にそのデータを示すマクロを下のように作りました。データ数はここでは仮に6個としてあります。



Sub Macro5()
'
' Macro5 Macro
' マクロ記録日 : 2008/4/10 ユーザー名 :
'

'
Dim my1gyo As Integer, mydata As String, myrange As Range, my2gyo As Integer, mydata2 As String, mydata3 As String
For my1gyo = 1 To 6
Worksheets("sheet1").Activate
mydata = Cells(my1gyo, 1)
'MsgBox mydata...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報