Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


457 / 500 ページ ←次へ | 前へ→

【4021】Re:テーブルのレコードの更新
回答  Gin_II  - 04/12/14(火) 2:57 -

引用なし
パスワード
   > まず一致したレコードがあるかどうかを調べ、
"事前に"、レコード件数を確認するのなら、DCount 関数だと思いますが、

> レコード更新をして、そしてどちらか一方が間違っていたときにエラーを出したいと
更新されたレコードがなければ、エラーだという考え方でいいのなら、


> Dim strSql As String
Dim dbs As DAO.Database
>
> strSql = "UPDATE [テーブル名] " _
>     & "SET [社員スキル] = '" & Forms!フォーム名!社員スキル & "' " _
>     & "WHERE [社員番号] = " & Forms!フォーム名!社員番号
>
> Currentdb.Execute strSql
' ↑修正
Set dbs = Currentdb
dbs.Execute strSql

If dbs.RecordsAffected > 0 Then
  MsgBox dbs.RecordsAffected & "件、更新しました。"
Else
  MsgBox "Err:更新レコードがありません。"
End If

のようにすれば大丈夫だと思います。
・ツリー全体表示

【4020】Re:テーブルのレコードの更新
回答  MJ  - 04/12/13(月) 15:56 -

引用なし
パスワード
   こんにちは。

> まず一致したレコードがあるかどうかを調べ、

DLookup関数を用いてみては如何でしょうか。
・ツリー全体表示

【4019】リストボックスについて
質問  ROMI  - 04/12/12(日) 1:31 -

引用なし
パスワード
   またまた質問します。
一つのリストボックスに社員番号と社員氏名を出力して、そこで選んだレコードをコマンドボタンを押したら、別のフォームに移り、そのレコードを出力するということは可能なのでしょうか?参考書などを読んでも、コンボボックスで選んだ一つだけの情報はできるのですが、一つのリストボックスに二つの情報が入っていて、それを別のフォームに出力するということが載っていなかったので・・・。
よろしくお願いします。
・ツリー全体表示

【4018】Re:テーブルのレコードの更新
質問  ROMI  - 04/12/12(日) 1:30 -

引用なし
パスワード
   ありがとうございます。更新うまくいきました(*・ェ・*)

そこでまた詰まってしまったことがあるのですが、
少しだけ条件を増やして、入力した社員番号と社員氏名が一致したときにレコード更新をして、そしてどちらか一方が間違っていたときにエラーを出したいと考えております。『Currentdb.Execute strSql』でSQLが実行され更新されると思うのですが、まず一致したレコードがあるかどうかを調べ、エラーをメッセージボックスで出力するときはどうすれば良いのでしょうか??
文章にして伝えるのが下手くそなので、きちんと伝わらないことがありかもしれませんが、教えてください。よろしくお願いします。
・ツリー全体表示

【4017】Re:Requeryについて
お礼  キッコーマン  - 04/12/11(土) 15:31 -

引用なし
パスワード
   ▼ぬぅ さん
ぬぅさん、こんにちわ★

またまたお返事ありがとうございます。
ぬぅさんのヒントにより無事解決しましたぁ〜♪♪

>リンク子フィールドと親フィールドに項目は設定していません。
 →そうです!このリンクフィールドに何も項目を設定せずに実行したところ、うまく表  示されました★1レコードしか表示されなかったのが全て表示されたのです。
  どうやらこれが原因でレコードが1件すつしか表示されなかったようでした。
  ヒントくださいましてありがとうございました!!!!!!!!!!!!
  超すっきりしました〜。感謝です(´∀`)
・ツリー全体表示

【4016】Re:新規レコードについて
回答  Hanahana E-MAIL  - 04/12/11(土) 10:47 -

引用なし
パスワード
   横槍を入れるようで申し訳ありません。

SendKeyを使用した場合だと入力を中止した場合に
レコードを削除する必要があると思います。

次の方法は表示するだけでまだレコードには
書き込まれていません。

If Me.NewRecord = False Then Exit Sub
Me.RecordsetClone.MoveLast
Me.Text1.DefaultValue = Chr(34) & Me.RecordsetClone.Fields("フィールド1") & Chr(34)
Me.Text2.DefaultValue = Chr(34) & Me.RecordsetClone.Fields("フィールド2") & Chr(34)
Me.Text3.DefaultValue = Chr(34) & Me.RecordsetClone.Fields("フィールド3") & Chr(34)
・ツリー全体表示

【4015】Re:エクセルへ抽出
回答  Hanahana E-MAIL  - 04/12/11(土) 10:42 -

引用なし
パスワード
   お早うございます。

>エクセルを終了する時には、
>   xls.Quit
>   Set wks = Nothing
>   Set wkb = Nothing
>   Set xls = Nothing


xls.Quitの前にwxb.Closeが必要です。

ワークブックが閉じていない状態ではエクセルは終了出来ません。

又、次にこのファイルを開く際、ワークブックは"使用中"と出ると思います。
・ツリー全体表示

【4014】Re:フィールドが完全一致でない二つのテー...
回答  Gin_II  - 04/12/10(金) 17:40 -

引用なし
パスワード
   >ちなみに、「氏名」フィールドに入力されているものも、
>姓と名の間にスペースがあるものとないものとが
>まちまちなのですが、そういった場合も重複として
>認識できるものなのでしょうか?

できないです。
すべてのデータを、空白を削除するなり統一させないとダメですね。

空白を削除するのなら、Replace 関数が使えると思います。
#ただし、Access2000以降。
・ツリー全体表示

【4013】Re:テーブルのレコードの更新
回答  Gin_II  - 04/12/10(金) 17:38 -

引用なし
パスワード
   > 社員番号と社員氏名が一致した
通常、社員番号は一意じゃないのでしょうか??

Dim strSql As String

strSql = "UPDATE [テーブル名] " _
    & "SET [社員スキル] = '" & Forms!フォーム名!社員スキル & "' " _
    & "WHERE [社員番号] = " & Forms!フォーム名!社員番号

Currentdb.Execute strSql

なんてのはどうでしょうか?
・ツリー全体表示

【4012】Re:テーブルのリンクとリンクの解除
お礼  takeshi  - 04/12/10(金) 16:06 -

引用なし
パスワード
   ▼MJ さん:
ありがとうございます。
早速やってみます。
・ツリー全体表示

【4011】Re:テーブルのリンクとリンクの解除
回答  MJ  - 04/12/10(金) 15:57 -

引用なし
パスワード
   こんにちは。

DAOでしたら、ヘルプにて、
Relations コレクション
Relation オブジェクト
CreateRelation メソッド
あたりを参照されては如何でしょうか。
使用例もいくつか掲載されています。
・ツリー全体表示

【4010】テーブルのレコードの更新
質問  ROMI  - 04/12/10(金) 15:48 -

引用なし
パスワード
   テーブルの中に「社員番号・社員氏名・社員スキル」があり、「更新する情報をフィールドのテキストボックスに入力し、更新ボタンを押すとテーブルの中から社員番号と社員氏名が一致した社員スキルだけを更新する。」というプログラムを組みたいのですが、DAOを使ってどうすればいいのかわかりません。教えてください。
o(´^`)o
・ツリー全体表示

【4009】テーブルのリンクとリンクの解除
質問  takeshi  - 04/12/10(金) 15:24 -

引用なし
パスワード
   モジュールでテーブルのリンクのやり方と解除のやり方を教えてください。
・ツリー全体表示

【4008】Re:NotInListがうまくいきません
お礼  えなりん  - 04/12/10(金) 13:13 -

引用なし
パスワード
   できました♪

コンボボックスの「入力チェック」は「はい」にしてたんですが、
「参照設定」で[Microsoft DAO 3.* Object Library] にチェックが入ってませんでした。
(というか、存在そのものを初めて知りました)

いつもいつもありがとうございます。
・ツリー全体表示

【4007】Re:NotInListがうまくいきません
回答  クロ  - 04/12/10(金) 12:37 -

引用なし
パスワード
   「参照設定」で[Microsoft DAO 3.* Object Library] にチェックは
入っていますか?

それと別件ですが、
コンボボックスの「入力チェック」は「はい」にしてください。

rst!適用 = CStr(NewData)
はNewDataはStringになってるので
rst!適用 = NewData
でいいかと...

終わりに
rst.Close
dbs.Close
も入れた方が...
・ツリー全体表示

【4006】Re:NotInListがうまくいきません
質問  えなりん  - 04/12/10(金) 12:05 -

引用なし
パスワード
   先生
DAO〜にしても、やっぱり同じエラーです
もうお手上げです
・ツリー全体表示

【4004】エクセルへ抽出
質問  ひろのしま  - 04/12/10(金) 11:08 -

引用なし
パスワード
   エクセルのシートに抽出するときには、一応順番があり、
エクセルをあける時には、
Set xls = CreateObject("Excel.Application")
Set wkb = xls.Workbooks.Open(Filename:="該当パス", ReadOnly:=False)
Set wks = wkb.Worksheets("該当シート")
エクセルを終了する時には、
   xls.Quit
   Set wks = Nothing
   Set wkb = Nothing
   Set xls = Nothing
という記述が必要ですが、このコマンドが記述されてもそのエクセルを開いた時にシートが開けられない出来ない場合があリます。どういった場合にエクセルシートを開けることが出来なくなるのかを教えていただけないでしょうか。また、もしかすれば記述の順序にお誤りがあるのかもしれません。ですので、注意、訂正をお願いします。
・ツリー全体表示

【4003】Re:NotInListがうまくいきません
回答  クロ  - 04/12/10(金) 10:34 -

引用なし
パスワード
   「参照設定」で[Microsoft DAO 3.* Object Library] を参照する必要があります。
で、
Dim dbs As Database
Dim rst As Recordset
は明示的に
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
としてあげること
・ツリー全体表示

【4002】NotInListがうまくいきません
質問  えなりん  - 04/12/10(金) 9:48 -

引用なし
パスワード
   フォームでコンボボックス(名前:適用)を作り、値集合ソースを「T適用」というテーブルにしました。
リスト外入力時イベントで下記のような記述をしました。
 Private Sub 適用_NotInList(NewData As String, Response As Integer)
  Dim dbs As Database
  Dim rst As Recordset
  Dim strText As String
   Set dbs = CurrentDb
   Set rst = dbs.OpenRecordset("T適用")
   rst.AddNew
   rst!適用 = CStr(NewData)
   rst.Update
   Response = acDataErrAdded
 End Sub
実際にリストにない入力をすると
「コンパイルエラー ユーザー定義型は定義されていません」というメッセージで
「Dim dbs As Database」が反転表示されます。
ヘルプを見たり、いろいろなホームページを見たりしたのですが、
どれも普通に「Dim dbs As Database」を使用していて、なぜこのようなエラーになるのかがわかりません。

教えてください。
・ツリー全体表示

【4001】Re:全角文字の半角変換
回答  Gin_II  - 04/12/10(金) 7:48 -

引用なし
パスワード
   >全角文字(英字・カタカナ)を半角に変換したいのですが
>簡単な方法はありますか?

StrConv 関数をヘルプで確認してください。
・ツリー全体表示

457 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084765
(SS)C-BOARD v3.8 is Free