Access(アクセス)

全439件中1~20件表示
  • access ふたつのテーブル間でのデータ移動VB

    win10 office365 accessのテーブルの table1のフィールド IDの数値を table2のフィールド ID (いずれも長整数型 数値型 重複あり 空白の許容なし) にコピーする操作ですが 幾度か お尋ねしてきていますが 今回 このやり方で やってみました http://www.mahoutsukaino.com/ac/ac2002/vba/vba16/v16.htm 以下のコードにおいて rs2.Update ここの部分が黄色くなって とまってしまいます しかし なぜか 数値の移行は 出来ていました ただ止まってしまうと 次に続けられなく困っています Public Function table2table1() Dim cn As adodb.Connection Dim rs1 As adodb.Recordset Dim rs2 As adodb.Recordset Set cn = Application.CurrentProject.Connection Set rs1 = New adodb.Recordset Set rs2 = New adodb.Recordset rs1.Open "table1", cn, adOpenStatic, adLockReadOnly rs2.Open "table2", cn, adOpenKeyset, adLockOptimistic rs1.MoveFirst Do Until rs1.EOF rs2.Find "ID='" & rs1!ID & "'" If rs2.EOF Then rs2.AddNew rs2![ID] = rs1![ID] rs2.Update End If rs1.movenext Loop rs1.Close rs2.Close cn.Close End Function 以上 すみません 宜しくお願い致します

  • 報酬付き

    データベース履歴の名前を変更したくない

    Accessの勉強中でデータベース初心者の者です。 例えば商品テーブルがあって、商品購入履歴テーブルがあったとします。この2つは商品IDでリレーションが組んであるとします。 疑問なのは、商品名を一部修正したら、商品購入履歴の商品名まで変更になってしまうのですが、既に購入された商品は名前を変更させたくない。といった場合、どのような対応方法があるでしょうか?

  • Access マスタ登録の流れについて

    Access初学者です。 マスタテーブルとトランジションテーブルがあり、業務の流れが新規のデータがトランジションテーブルから判明します。そこでトランジションテーブルに新規データが入力された場合、マスタテーブルに入力を促すような処理を設定したいのですがどうすればいいでしょうか? 動画等を検索するのに、検索キーワード等を教えて頂けると助かります。

  • 報酬付き

    access一部のフィールドを他のテーブルへVBA

    先日 https://okwave.jp/qa/q10245651.html において > table2の新しいデータとして > table1のデータをコピーしたい、 単に追加で ということであれば、という 御回答: Sub Test() Dim StrSQL As String StrSQL = "INSERT INTO table2 SELECT table1.* FROM table1;" DoCmd.SetWarnings False DoCmd.RunSQL StrSQL DoCmd.SetWarnings True End Sub ---------------------- 上記の 回答をいただき うまく稼働しました 部分的にフィールドを別テーブルに 移動するとき ここでは table1のフィールド名 IDに table2のフィールド名 bに 入っている数値 にい 1を加えた数値を 移動したいのですが Public Function Test() Dim tb1 As Table Dim tb2 As Table tb1 = table1 tb2 = table2 Dim strSQL As String strSQL = "INSERT INTO table2![ID]SELECT"("[b]"FROM tablel)+1" (table1のフィールド[b]の数値に1を加えた数値を table2のフィールド[ID]に移行する、というつもりです) DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Function 稼働しません すみません 宜しくお願い致します (ついでながら ここで でてくるb というのは テーブル table3 の IDの総和 すなわち SELECT Count(table3.ID) AS b FROM table3; 要は table3の最後のレコードの次のレコードの 番号の数値を table2のIDに移動したい というわけであります) (いずれのIDや bについても 数値型 長整数型 重複あり です)

  • アクセステーブルがあれば削除VBA

    win10 office365 access365におきまして テーブル この例ではTMPがあれば テーブルそのものを削除し (ですから削除クエリを使うこととは違うと思いましたが) はじめから存在しないときは次のコードに進む ということでほかの記事を参考に作ってみたのが Public Function tmpdelete() If funcTableExists("T_TMP") = True Then DoCmd.DeleteObject acTable, "T_TMP" End If End Function ----------------------- そもそもfuncTableExistsというのは 付属の関数ではないのかなと調べまして ----------------------- Private Function funcTableExists(ByVal strTableName As String) As Boolean Dim db As Database Dim tdf As TableDef Set db = CurrentDb For Each tdf In db.TableDefs If (T_TMP= strTableName) Then funcTableExist = True Exit Function End If Next tdf Set tdf = Nothing db.Close Set db = Nothing End Function --------------------- If (T_TMP= strTableName) Then ここに削除判定の対象のテーブル名を入れましたが 上記いずれも 作動しません マクロのプロシージャで組み入れたいので subでばく functionで書くようにとありましたので 上記のようにしました また すみません 宜しくお願い致します

  • アクセス テーブルデータ他のテーブルにコピーVBA

    win10 access365のmdbファイルにおいて table1のフィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  table2;フィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  上記に置いて table2の新しいデータとして table1のデータをコピーしたい、 ただしtable1には レコードは1行だけとします (table1にレコードが複数行ある場合の最新レコードだけtable2にコピーも出来れば知りたいです) アクセス付属の更新クエリーでは、どうも うまくいきません sqlにおいて UPDATE table1, table2 SET table2.ID = [table1]![ID], table2.氏名 = [table1]![氏名]; 上記動作しません Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim TB As Table Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Table![table1]![ID] Rdset![氏名] = Table![table1]![氏名] Rdset.Update End Function table1, table2を それぞれ 同名のフォームを作り Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim fm As Form Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set fm = Forms![table1] If Rdset.BOF Then Exit Function Else Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Forms![table1]![ID] Rdset![氏名] = Forms![table1]![氏名] Rdset.Update End If End Function いずれも table2のデータ更新が なされていません すみません 宜しくお願い致します

  • 報酬付き

    accessテーブルの数値をエクセルセルに移VBA

    accessファイルの abc.mdbのtable1のフィールド1のIDの数値を 現在開いているエクセルファイル Q.xlsxの A2セルに移行したいのですが エクセルのVBAにおいて Sub IDエクセルへ移行() ' 'Dim myCon As New ADODB.Connection Dim myRecordSet As New ADODB.Recordset Dim mySQL As String Dim dbFile As Variant Dim mySheetName As Variant Dim i As Integer dbFile = "C:\Users\USER\Desktop\ABC\abc.mdb" myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" myCon.Open mySQL = "SELECT * FROM table1" myRecordSet.Open mySQL, myCon, adOpenDynamic mySheetName = ActiveSheet.Name With Worksheets(mySheetName) .Cells(1, 2).Value = myRecordSet!ID End With myRecordSet.Close Set myRecordSet = Nothing myCon.Close Set myCon = Nothing ' ' ActiveWorkbook.Save End Sub ------------- 上記を実行すると objectがありません と myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" ここの部分が黄色くなってしまいます ここが さっぱり意味不明です すみません 宜しくお願い致します Microsoft ActiveX Data Objects 2.8 Library 6.1も 参照設定で チェックを入れました win10 office365

  • accessテーブル検索 エクセルのセルデータから

    エクセルファイル M.xlsxの セルA1(氏名)=やまだやまよ B1(生年月日)=1980/3/15 という ひらがなの氏名があるとします access H.mdbというファイルのなかの テーブルTにおいて フィールド1=氏名 フィールド2=生年月日 フィールド3=ID のテーブルがあり このテーブルTに 上記エクセルのA1の氏名が あるかどうか このケースですと やまだやまよ が このテーブルTのフィールド1の行にあるかどうか これを調べるVBAのコードを 知りたいのですが、 検索ワードが M.xlsxのセルA1 という定義でコードを御教示ください 氏名で一致したデータがあるときに そのデータのフィールド2の生年月日でもB1のデータと一致するかを 続けて検索するとします ここまでの動作のコードを 御教示願えたら 助かります 宜しくお願い致します win10 office365

  • access ハイパーリンクセルに一括で#を入力

    グーグルドライブのなかの フォルダそれぞれのリンク先を取得する方法までは 出来ました スプレッドシートを開いて 拡張機能のapps script を開いて云々、、、 それでフォルダ名称に対応するリンク先のリストが 作れたのですが、これを accessのテーブルのハイパーリンク設定のセルに コピペしても、リンク先URLに届かず 調べたところ最後に#を入れたら出来ると読みまして たしかに出来たのですが、1万以上のデータのひとつひとうに#を入力するのは手間でもあり、 〔リンク先〕&”#”としてみましたが これでは ハイパーリンクの動作をしなくなるようです 旨い手段は ございましょうか 宜しくお願い致します win10 office365

  • Access 複数フィールドにまたがる抽出条件

    Access2016で、クエリの抽出条件の設定に悩んでいます。解決策をご存知の方はご教示いただきますようお願い致します。 ★やりたいこと★ 【テーブル1】に以下のようなフィールドがあります。 [フィールドA] "製品a" "製品b" "製品c ..." のようなデータ群 [フィールドB] "00 "01" の2種類のデータ群 [フィールドC] "98" "99" の2種類のデータ群 フィールドBが "00" で、かつフィールドCが "98" に該当するデータのみを除外する抽出条件を設定したい。 ※フィールドBが "00" でフィールドCが "99" のようなデータは除外したくない SQLとかは使わず、初心者でも後から解読・編集できるような方法があればありがたいです。

  • Access format関数を使わず日付を変換

    Access2016で、あるテーブルからクエリを作成して日付フィールド(西暦/月/日)を(西暦/年)のようにさせたいのですが、以下のようにformat関数を入力して実行すると完了するまでに非常に長い時間がかかってしまい困っています。 別の方法で処理をしたいのですが、ご存知の方いらっしゃるでしょうか。 SQLとかは使わず、初心者でも後から解読・編集できるような方法があればありがたいです。 元となるテーブルのデータ型は都合上変えられません。 フィールド名 日付 データ型 日付/時刻型 データサンプル 2024/2/27 クエリでやりたいこと 元のテーブルのデータを日別ではなく月別で集計したいため、 日付データを 年/月/日 ではなく 年/月 に変換したい ※同月のデータを同一の値に変換できさえすれば合計できるので、表示される形式は「2024/2」でも「2024年2月」でも「202402」でも構いません。 今回入力した式 「年月:format([日付],"yyyy/mm")」 以上、よろしくお願いします。

  • エクセルデータをアクセステーブルにコピーするVBA

    エクセルファイル E.xlsxにおいて セルA1=ID A2=氏名 A3=性別 A4=住所 というデータがあるとしまして これをアクセスファイル F.accdbにおける テーブルの table1 その項目が ID, 氏名, 性別, 住所, 卒業校, 旧住所 があります。 このエクセルファイル E.xlsxにおける セルA1=ID A2=氏名 A3=性別 A4=住所 というデータを上記F.accdbにおける テーブルの table1 その項目が ID, 氏名, 性別, 住所,に(卒業校, 旧住所は 新規入力はないこととなります) コピー 追加するVBAを御教示願えますか E.xlsxにおいては1行だけのデータですが、 table1には すでに数行のデータが入力済であり、 IDが新規の場合と、すでにtable1に登録済みのIDが存在する場合に 上書きする場合のそれぞれのVBAを 御教示くださりますと助かる次第です よろしくお願い致します win10 office365

  • access table 上書きしてデータ追VBA

    access365 名簿accdbにおいて テーブル1に ID 名前 住所 郵便番号 という項目があり IDは重複不可 数値 テーブル2に ID 名前 住所 郵便番号 という項目があり IDは重複不可 数値 と ふたつのテーブルがあるとき 追加クエリーで テーブル1に テーブル2のデータを追加するときは 同一のIDでは 上書きができません テーブル2のIDが テーブル1にまだ存在しないIDの数値であれば 追加クエリーにより データの追加ができますが 例えばIDが3の人物がいて そのテーブル1の住所が東京で これが新しいデータの格納されているテーブル2では ID3の住所が千葉となったときに これを追加クエリーでIDを3として上書きはできない構造のようです 更新クエリー というのも調べてみましたが ある一定の規則でたとえば物品の値段が100円増しのような 一定の更新条件がある場合であれば更新クエリーが使えますが 上の例のようにテーブル2においてテーブル1にもすでに名前の登録のあるIDのひとの 数人が住所がテーブル2において 新しいものとして変更されていて それをテーブル1に一括で住所の変更のできるVBA 御教示いただけますか (上記の場合ですと住所の変更と郵便番号の変換が同時に当然起きえます) また 同時に テーブル1にはIDの登録もまだない新規IDのひとも テーブル2に存在するとします 要は テーブル2には テーブル1にすでにID人物登録のあるひとと 新規IDのひとが混在している条件で、作りたいと思います すみませんが、おちから頂けると助かります 宜しくお願い致します office365 win10

  • フィルターが掛かった状態でクエりで連番

    クエリでフィルターが掛かった時、連番を付ける事をしたいのですが、この式だと下記の様に連番を付ける事が出来ませんでしたのでご教授頂けれは幸いです。 連番: Val(DCount("*","テーブル名称","ID <= " & [ID])) 例1> テーブル例 ID 品名 1 みかん 2 りんご 3 ぶどう 4 みかん 5 りんご 6 みかん クエリ例 品名 みかんをフィルター ID 品名 連番 1 みかん 1 4 みかん 2 6 みかん 3 例2> テーブル例 ID 品名 120 みかん 121 りんご 123 ぶどう 124 みかん 125 りんご 126 みかん クエリ例 品名 みかんをフィルター ID 品名 連番 120 みかん 1 124 みかん 2 126 みかん 3

  • 画像をテーブルに入力するには

    お世話様です 資産の管理履歴です 写真を処理したいです。 データ型を《OLEオブジェクト型》にして、 フォームを開いてこの項目を右クリックで オブジェクトの挿入クリックから添付図からが表示されますが フォームを開くと空白のままです。 画像の拡張子は《JPG》です 宜しくお願い致します。

  • ACCESSのVBAでカナを取り出すプログラム

    ACCESSのVBAで急遽以下の処理をする必要があり、コードを教授ください。当方、プログラミングは素人で、簡単なコードをネットで拾って来て動かしているレベルです。 テーブル「名簿」のフィールド「旧カナ」の値(文字列)を取り出して、その文字列からカナとスペースだけを抜き出してフィールド「新カナ」に登録したいです。全レコードを置きかけます。 フィールド「旧カナ」には、名前のカナだけではなく英字、数字、記号などが入っているので、カナだけを取り出して文字詰めして「新カナ」に登録し直したいです。VBAのコードを教えてください。 ACCESSのモジュールで書いて、マクロで起動する予定です。よろしくお願い致します。

  • アクセス初心者です!

    アクセス初心者です! アクセスでどうしてもわからないことがあるので教えてください! 仕事上でラベルを作成することがあるんですが、例えば林檎が255個あった場合、 50個のラベルを5枚、 5個のラベルを1枚、作成する必要があります。 ただし送られてくるデータ上では255個の林檎が1点となっています。 これを分割して林檎50個のデータが5件、 林檎5個のデータが1件の合計6件にした上で 5個のデータのみレポートに出力してラベルを作成したいです。(50個のラベルはあらかじめ作成できるため必要ないです。) また、それをできる毎回できるようにフォーム上にボタンを設置しデータをインポートすれば毎回ラベルを作成できるようにしたいです。 また、参考になるサイトがあったら教えてください! ややこしくてすみません、よろしくお願いいたします!

  • accessのリンクテーブルについて

    今業務でaccessを使っています。 使い方としてはローカル(デスクトップ)に保存した access:Aのクエリから、サーバーにあるaccess:B内のリンクテーブルの情報を読み取るという形です。最近、クエリが急激に遅くなり、業務に支障をきたすようになりました。 Bをローカルに置いて、クエリをすると高速に動きます。 以上よりB自体に問題は無いと思われ、Bがサーバーにいることが問題となっているようです。 (今までは問題化していませんでしたが、サーバのメンテナンス等が影響と推測) ローカルに置くと共用できないので、サーバ上で今まで通り高速に動くようにしたいです。 クエリをインデックス有にすることは試しました。どなたか詳しい方、対処方法を教えていただけると助かります。

  • IDの大きい方を抽出

    Access2019 重複クエリで作成して、表示迄出来ました。 重複クエリを基に、クエリでIDの大きい方を抽出しようと出来ないものかと。。 重複クエリ表示例 日付 識別番号 名称 ID 2023/12/23 1234 りんご1 123 2023/12/23 1234 りんご1 150 → 抽出データ 2023/12/23 5678 みかん2 234 2023/12/23 5678 みかん2 300 → 抽出データ 2023/12/23 5678 みかん2 350 → 抽出データ ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • accessのクエリーで、レコードを分割したい。

    テーブルに担当者 品名 数量      鈴木  A   100      佐藤  B   50とあります。 これを  鈴木  aa 100の10%で10      鈴木  bb   100の60%で60      鈴木  ㏄   100の30%で30      佐藤  aa 50の10%で5      佐藤  bb   50の60%で30      佐藤  ㏄   50の30%で15 という風にしたいです。 10% 60% 30%の数値は、変わりません。どうすればいいでしょうか。ご教授お願いいたします。