Access
新規入力画面にするコード
DoCmd.GoToRecord,,acNewRec
を入力後新規ホームを開くと
一番上の顧客CDに0が表示されます。
非表示または(新規)というふうに変更するのはどうやればいいのか教えてください。

A 回答 (1件)

顧客CDがテーブル上では数値型で、テーブルをデザインビューで開いた時に


規定値に「0」が入っていませんか。
    • good
    • 0
この回答へのお礼

解答ありがとうございます!
規定値はなにも入ってなかったのですがNULLと入れたら大丈夫でした!
ありがとうございます!

お礼日時:2017/06/20 15:33

お探しの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 にチェックが入っていないのかも。。。。

Q【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには

バージョン:Access2002

フォーム「frm01」にテキストボックス「tb01」が作ってある場合、
Forms.frm01.tb01.Value="あいう"
とすれば、フォームもコントロールも指定できるのですが、
Dim strTxt As String
strTxt = "tb01"
Forms.frm01.strTxt.Value="あいう"
だと、文字列型変数"strTxt"が展開されないのでフォーム「frm01」のコントロール「strTxt」を探してしまいエラーになってしまいます。

文字列型変数でフォームやコントロールを指定するには、どのようにすればよいのでしょうか?

Aベストアンサー

フォームの場合
 Forms(strFrm)

フォームのコントロールの場合
 Forms(strFrm).Controls(strTxt)


これでも参照できますが、普通ここまで省略しませんね。
 Forms(strFrm)(strTxt)

あとで見たとき、訳がわからなくなりそう。

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

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

Aベストアンサー

DoCmd.rename "Old Report Name", acReport, "New Report Name"
で行けるんじゃないかな? 
https://msdn.microsoft.com/en-us/library/office/ff823209.aspx
docmdをvbaと呼ぶかどうかは、よくわからないけど、
そういう意味でのVBAなら、ADOXでも可能だと思う。

Qaccessフォルダを移動したらファイルが見つかりません

アクセスDBをフォルダーの移動をして保存しました。
その後、ファイル'パス名~'が見つかりませんでした>マクロのシングルステップ全てのマクロを停止となるエラーメッセージがでました。全てのボタンで同じ現象が起きます。
参照先のフォルダが原因でしょうが、どこを修正したらいいのかわかりません。
困ってます。アドバイスいただけると助かります。

Aベストアンサー

フォルダーを移動したら設定変更しなければなりません。
アクセスを起動して
ファイル → オプション → 基本設定
→ 規定のデーターベースフォルダー(C:\Users\???\Documents\)
になっているので移動先のフォルダーに変えて「OK」で閉じましょう。

Qaccessのレポートで同じ名前の物を集計したい

よろしくお願いします。

メニュー名    │料理名    │材料   │材料数
モーニングセットA│ベーコンエッグ│卵    │5
モーニングセットA│ベーコンエッグ│バター  │8
モーニングセットA│ベーコンエッグ│ベーコン │4
モーニングセットA│トースト   │パン   │2
モーニングセットA│トースト   │バター  │1

上記のようなクエリがあります。(結果をわかりやすくするため実際の材料数とは異なります)
セットはいくつかのバリエーションでA、B、C…とあり、それぞれどれだけ材料が必要かを
レポートに表記したいと思っています。
ここで、モーニングセットにはバターが9必要という結果を出したいのですが、レポートウィザードで
メニュー名→料理名→材料
とグループ化し、集計のオプションで材料の「合計」にチェックを入れても、9という数字は導き出せませんでした。
レポートデザインで直接関数を作ればいいのかと思いますが、
「メニュー名」グループ内の同名の「材料」の「材料数」を集計する
という式の作り方がわかりません。
よい方法がありましたら、よろしくお願いします。

よろしくお願いします。

メニュー名    │料理名    │材料   │材料数
モーニングセットA│ベーコンエッグ│卵    │5
モーニングセットA│ベーコンエッグ│バター  │8
モーニングセットA│ベーコンエッグ│ベーコン │4
モーニングセットA│トースト   │パン   │2
モーニングセットA│トースト   │バター  │1

上記のようなクエリがあります。(結果をわかりやすくするため実際の材料数とは異なります)
セットはいくつかのバリエーションでA、B、C…とあり、それぞれどれだけ材料...続きを読む

Aベストアンサー

料理名が入っていると、料理ごとの材料になってしまいますので、料理名のコラムを削除すれば、メニュー名の材料の合計が出せます。

QAccess VBA で txt文を保存したい!

Access2013 のVBAで、

 Dim setsumei as string

setsumei="........"

このように setsumei に、ある説明文を代入しています。

 あるボタンを押せば、単純にこの説明文をデスクトップ上に「setsumei.txt」として
保存するようにしたいのですが、txt文に変換して保存する方法がわかりません。

Aベストアンサー

いくつかやり方がありますが、File System Object を使うなら、
参照設定でScripting Runtimeにチェックを入れて、、、

Dim FSO as New FileSystemObject
Dim TS as textstream

Set ts = fso.OpenTextFile("D:\Tips.txt", ForWriting, True, TristateFalse)
ts.writeline setsumei

ts.close
set ts = nothing
set fso = nothing
みたいな感じかな?

opentextfileは引数で上書するかどうかなどを指定します。
https://msdn.microsoft.com/ja-jp/library/cc428044.aspx

QACCESS VBA 文字抽出について 文字の抽出をVBAにて行いたいのですが教えてください テキス

ACCESS VBA 文字抽出について

文字の抽出をVBAにて行いたいのですが教えてください

テキストボックス1に170626と入力を行う
その際必ず数値が6ケタしか入力できないようにする
6桁入力が完了すると、自動で
テキストボックス2に17
テキストボックス3に06
テキストボックス4に26
と分けて抽出を行う
このような仕様にしたいのですが可能でしょうか?

Aベストアンサー

>その際必ず数値が6ケタしか入力できないようにする

テキストボックス1のプロパティシート、データタブの入力規則に「Len([テキストボックスの名前])=6」
とすればよいです。6文字以外の時にメッセージを足したい場合は、その下のエラーメッセージ欄に
例えば「6文字で入力してください」とか記述すれば6文字以外の場合はメッセージが出ます。

抽出は、テキストボックス1の更新後処理イベントに以下のコードを書いてみてください。

Me.テキストボックス2 = Left(Me.テキストボックス1, 2)
Me.テキストボックス3 = Mid(Me.テキストボックス1, 3, 2)
Me.テキストボックス4 = Right(Me.テキストボックス1, 2)

6文字チェックもVBAで行うなら

If Len(Me.テキストボックス1) <> 6 Then
MsgBox "6文字で入力してください"
ELSE
 ※上記のコード
End If

Qaccess別のテーブルを参照してテキストボックスに値を表示、編集したい

お世話になっております。
フォームで入力したテーブルの情報を別フォームのテキストボックスに表示したいのですが
表示した情報はまれに変わる事もあるため、編集も出来るようにしたいと考えております。

そのままテーブルのフィールドを追加してしまうと、元のテーブルが変更されてしまうため
DlookUp関数をコントロールソースで表示させてみましたが「このコントロールは式(略)に連結しているため、編集できません」というエラーがでて編集ができませんでした。

=DLookUp("[支払サイト]","[Tお客様情報]","[メンテNO]=" & [Forms]![F工事情報入力]![メンテNO])
既定値にそのまま入力するとうまく反映されませんでした。

なにか他にこうしたらいい等ありましたらアドバイスください。よろしくお願いします。

Aベストアンサー

コントロールソースは設定せずにF工事情報入力のメンテNOが変わったらマクロの値の代入を使って
DLookUp("[支払サイト]","[Tお客様情報]","[メンテNO]=" & [Forms]![F工事情報入力]![メンテNO])
を代入する。

QAccessを使用して引継ぎ

Access初心者です。
よろしくお願いいたします。

Accessを使用して引継ぎをしたいと考えておりますがどのように作成したらよいか分からず悩んでおります。
アドバイスをよろしくお願いいたします。

まずメニュー画面があり登録画面と確認画面を作ります。
登録画面の内容は
日付、表題、内容の三項です。

次に悩んでいる確認画面です。
イメージは添付の画像のような形を考えております。

まず左側に登録してある日付を一覧で表示し、見たい内容の日付を選択すると右側に内容の一覧が表形式で表示されるようにしたいです。

以上のようなことを行うにはどのようにすればよいでしょうか?
※左側はテキストボックスを使用して…など

ざっくりとした質問ですみませんがよろしくお願いいたします。

Aベストアンサー

メインとなるフォームの中にサブフォームを2つ(日付一覧と内容一覧)作ってみてはどうでしょう。
ただ、登録日付が順次増える等を考えると、イメージ画像のような日付ボタンでは難しいと思いますので、
若干イメージとは異なりますが日付一覧もリストで表示するようにしてはいかがでしょうか?

具体的には、登録テーブルを作成します。内容は日付(日付型)、表題(短いテキスト型)、内容(長いテキスト型)の3項目と仮定します。
「登録テーブル」を基にクエリを2つ作ります。
Q_クエリ1:テーブルの日付のみを表示させ、日付をグループ化しておきます(同一日付で、複数の内容がある場合もあるので)
Q_クエリ2:テーブルの3つの内容を表示させるようにします

次にサブフォーム(イメージ画像の左右2つのフォーム)を作ります。
F_サブ1:帳票形式のフォームを作り、テキストボックス(Tx_日付とします)を1つ配置し、その横にボタンを1つ配置します(選択ボタンとします)。
     ボタンを配置するとウイザードが動きますがキャンセルしてボタンだけにしておいてください
     レコードソースにQ_クエリ1を指定し、Tx_日付のコントロールソースは「日付」にします
F_サブ2:帳票形式のフォームを作り、テキストボックスを2つ配置します(Tx_表題、Tx_内容とします)
     レコードソースにQ_クエリ2を指定し、Tx_表題、Tx_内容のコントロールソースをそれぞれ「表題」、「内容」にします

メインとなるフォーム(F_フォームとします)を作成し、デザインツールからサブフォームを選んで、左右に2つ配置します。
ウイザードでは左側にはF_サブ1、右はF_サブ2を選択します。次の名前の指定では例えば左をサブフォーム1、右をサブフォーム2とします。

Q_クエリ2をデザインビューで開き、「日付」の下の抽出条件に [Forms]![F_フォーム]![サブフォーム1]![Tx_日付] と記述します。

F_サブ1に配置した「選択ボタン」のクリック時イベントでマクロビルダーを開き、以下のようにマクロを設定します
 ・オブジェクトの選択
    オブジェクトの種類:フォーム
    オブジェクト名:F_フォーム
 ・コントロールの移動
    コントロール名:サブフォーム2
 ・再クエリ
    コントロール名:空白のまま

これでメイン(F_フォーム)を開くと、左に日付が並んで表示されますので、
必要な日付の横にある選択ボタンをクリックすれば、右にその日付の表題と内容がリスト表示されます。

日付の横に配置したボタンの代わりに、フォームヘッダを表示させて、そこにボタンを1つ配置し、
そのボタンのマクロを上記と同様にすれば、1つのボタンで同じ動作をさせることが出来ます。
ただし、この場合は、一度日付を選択(クリック)して、フォームヘッダのボタンを押す必要があります。

メインとなるフォームの中にサブフォームを2つ(日付一覧と内容一覧)作ってみてはどうでしょう。
ただ、登録日付が順次増える等を考えると、イメージ画像のような日付ボタンでは難しいと思いますので、
若干イメージとは異なりますが日付一覧もリストで表示するようにしてはいかがでしょうか?

具体的には、登録テーブルを作成します。内容は日付(日付型)、表題(短いテキスト型)、内容(長いテキスト型)の3項目と仮定します。
「登録テーブル」を基にクエリを2つ作ります。
Q_クエリ1:テーブルの日付の...続きを読む

QACCESS2016でテーブル編集時、セル内で、一部の文字列だけをコピー&ペースト選択できない。

ウインドウズ10を使用しています。
ACCESS2016でテーブル編集時、セル内で、一部の文字列だけをコピー&ペーストするという事が多いのですが、一部の文字列だけを選択しようとしても、セル全体が選択されてしまいます。

例えば、
○○○○株式会社 東京都千代田区神田◇◇町◇◇―◇◇―◇◇
というデータの次の行に
△△△△株式会社 東京都千代田区神田✕✕町✕✕―✕✕―✕✕
というデータを作る際、
「株式会社」や「東京都千代田区神田」の部分をコピー&ペーストする、ということをしようと思っても「東京都千代田区神田◇◇町◇◇―◇◇―◇◇」全てが選択されて黒く表示されてしまい、仕方なくそれをコピー&ペーストしても、余分の「◇◇町◇◇―◇◇―◇◇」を一度に選択できないため、一文字ずつBack space等で消していかなくてはなりません。

以前は、このようなことはなく、セル内の一部の文字列だけを選択できたのですが、ある時期から突然このような状態になりました。
可能性としては
①どこかのキーボードを知らずにさわった。
②ウインドウズ・アップデートの影響?
③ウイルスに感染?
といったところです。

なお、保存してあるACCESSのデータを他のパソコン(ウインドウズ10、ウインドウズ8.1、ウインドウズ7等)で開くと問題なく操作できますので、1台のパソコンのみの問題ということになります。

ウインドウズ10を使用しています。
ACCESS2016でテーブル編集時、セル内で、一部の文字列だけをコピー&ペーストするという事が多いのですが、一部の文字列だけを選択しようとしても、セル全体が選択されてしまいます。

例えば、
○○○○株式会社 東京都千代田区神田◇◇町◇◇―◇◇―◇◇
というデータの次の行に
△△△△株式会社 東京都千代田区神田✕✕町✕✕―✕✕―✕✕
というデータを作る際、
「株式会社」や「東京都千代田区神田」の部分をコピー&ペーストする、ということをしようと思っても「東京都千代田区神田◇◇町◇...続きを読む

Aベストアンサー

多分、これでしょう。

フォーム上のテキストを数文字選択しようとすると行全体が選択されてしまう
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_access-mso_win10/%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e4%b8%8a/8331c88b-ce62-44e7-8c76-8088b7233e62


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

人気Q&Aランキング

おすすめ情報