サンプルのソースコードをテーブルを作成して見てください。
質疑応答時に双方でテーブル名、カラム名などが違いと意思疎通が
うまくいきませんので共通のテーブルでサンプルコードを実行する方が
効率よく質問事項が解決します。
質問者さんの内容はかなり複雑でありますが、コードを日常から作成していると
そんなには難しくありません。ただし、アクセスのVBAだけでは実現しませんので
ADOなどの技術を活用して質問者さんが行いたい事は可能となります。
とりあえず、アクセスのVBエディターにてADOを使用できる設定をおこなってください。
設定方法は以下のソースコードに記載しております。
適当にアクセスのファイルを作成してください
そして、フォームを作成してコマンドボタンのクリック時の
イベントに以下のコードを張り付けて、ボタンをおしてみてください
サンプルテーブルが自動で作成されます。
※事前にVBエディターのツールの参照設定に
microsoft ActivX Data object 6.1 Libraryにレ点を入れておいてください。

Private Sub コマンド6_Click()
'ADO経由で取り込みテーブルのサンプルを
'作成するためには
'VBエディターのツールの参照設定で
'microsoft ActivX Data object 6.1 Libraryにレ点を入れる
'↑6.1のバージョン各PC毎違いので、お手持ちのPCの最新バージョン
'にレ点をいれてください
'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
'取り込みテーブルの名前は[orderCapture]とする
'ACCESSのファイルでフィールド名、テーブル名を日本語表記を採用すると
'マイクロソフトの更新プログラムでVBAコードが全て初期化される(破棄)
'事象がoffice2016の更新プログラムで発生したことがあるため
'フィールド名、テーブル名、フォームに使用するオブジェクト名は
'英語表記、ローマ字表記の方が無難
'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
'Connectionオブジェクトのインスタンスを生成
Dim cn As New ADODB.Connection
'現在のAccessDBに接続
Set cn = CurrentProject.Connection
'Commandオブジェクトのインスタンスを生成%%
Dim cm As New ADODB.Command
'ActiveConnectionプロパティで接続の関連付けを行う
cm.ActiveConnection = cn
'CREATE TABLE文でテーブルを作成する
Dim strSQL As String
strSQL = "CREATE TABLE orderCaptureX("
strSQL = strSQL & " noX LONG" 'No
strSQL = strSQL & " ,partNumber TEXT(20)" '品番
strSQL = strSQL & " ,productName TEXT(20)" '品名
strSQL = strSQL & " ,quantity LONG" '数量
strSQL = strSQL & " ,UnitPrice CURRENCY" '単価
strSQL = strSQL & " ,totalamount CURRENCY " '金額
strSQL = strSQL & ",dayOfDelivery DATE" '納期
strSQL = strSQL & " ,remarks TEXT(255)" '備考
strSQL = strSQL & ",unionFormatNo TEXT(255) " '[コンボBOXの発注者ID]+[受注番号]+[No]を結合した管理番号%%
strSQL = strSQL & ")"
Debug.Print strSQL
'CommandTextプロパティにSQL文をセット
cm.CommandText = strSQL
'ExecuteメソッドでSQL文を実行
cm.Execute
'Commandオブジェクトの解放
Set cm = Nothing
'Connectionオブジェクトの解放
cn.Close: Set cn = Nothing
MsgBox ("サンプルテーブルが完成しました")
End Sub
通報 ...
とりあえず作成したソースコードを記載します。
SQLのCREATE TABLE文で作成したアクセスファイルに
フォームを作成してコマンドボタンを1個配置して
以下のソースコードを貼付けください
コンボBOX名はcmb01
テキストボックス名は、txb_発注者
コマンドボタン名は、btn01
コンボBOXに登録するテーブルも作成します
テーブル名はtb
フィールド名は2項目
フィールド名 ID、オートナンバー型
フィールド名 フィールド1 短いテキスト
集合値ソース:SELECT tb.ID, tb.[フィールド1] FROM tb;
これらの設定を行ったフォームがあれば、あとは取込みたい
エクセルを用意すれば、取込みができます。
コードが多いので分割して投稿します
分かりやすくすために番号を振っておきます
(1)VBAのコードのOption Compare Database、Option Explicit
が記載されている上部に記載するコードです。
フォーム内で共通で使用する共通変数をこの領域に記載します
(2)フォームに挿入したコンボBOXのイベントプロシージャです
コンボBOX名は[cmb01]です
(3)コマンドボタンを押したときの処理です
ここからが本題となります。
(4-1)長いので(4-1)と(4-2)(4-3)に分割して投稿します
※4-1)の部分は変数の宣言部分となります
(4-2)実際に処理する部分となります
(4-3)メモリーの解放をおこなう処理となります
これでソースコードは終了となります。
アクセスのテーブルに取り込んだサンプルデータ
かなり長いコードとなりますが、おおむねこれで質問者さんが質問に書かれていた
エクセルの発注書に登録されているセル番地からデータを取得して転記することができます。
処理を実現するためには、ポイントとして
「Microsoft Excel XX.X Object Library」を
参照設定にて使用できるように設定をおこなう。
これは、エクセルファイルをアクセス側から読み書きできように
するための処理です。このツールを設定することを知らないと
アクセスからエクセルを自在に扱えないので、ここでつまずきます。
そして次のポイントとして、アクセスのVBAだけでは実現できない処理を
参照設定にて「microsoft ActivX Data object 6.1 Library」を使用
出来るようにしてADOを使えるようにすることです。これにより
アクセス以外のSQLServerやオラクルなどのデータベースなどと
接続することができます。
これによりADOにおけるテーブルの更新処理なども柔軟におこなえるようになります。
なによりVBAのコード内でADOの機能を利用してVBAだけでは不可能な処理を可能とします。
外部参照設定をおこなうことにより、他のソフトなどの機能をアクセス内に
取り込めます。
大まかにまとめると
(1)「Microsoft Excel XX.X Object Library」
(2)「microsoft ActivX Data object 6.1 Library」
参照設定にて(1)(2)の機能を取り込むことにより今回の
質問内容の処理を実行することが可能となるのです。
追記ですが(3)のソースコードに
取込み後にエクセルファイル名に「取り込み済」の文字を付加した
構文も載せています。
Nameステートメントでファイル名を書き換えております。
(4-2)に記載している[Private Sub callExceltable()]のコールプロシージャのままでは
取込み用のエクセル以外を選択したときの判定処理がないため、データの整合性が保てません。
なので 以下の判定用のプロシージャを追記します。
の行にある12の部分を11に変えます。
エクセルの11行目の項目を判定するためです。
また [judgement]の変数は共通変数として使用するため
投稿している(1)のプログラムの最終行に判定する変数を宣言します
そして投稿(3)のプロシージャに[judgement]変数に代入した
判定値をもとに、エクセルのファイル名を変更するかの条件分岐を行います
名前を変更するプログラムの場所を以下に書き換えます。
ソースコードが長いので変更箇所が分かりづらく恐縮ですが
エクセルファイルが取込み対象かを判定する処理は盛り込んでいた方が
大勢の人が取込み処理する場合には有用であるといえます。
また取込みフォルダを固定化して、取込みたいエクセルファイルを
指定したフォルダに入れておき、取込み後、取込み済みフォルダへ
移動する方法もあります。 この方法であれば、ファイルを1個毎に
選ばず一括処理できるので業務は楽になります。
FileSystemObjectを活用してフォルダ内のファイルを開いて
取込み処理を行うソースコードを記述して運用しております。
余談ですがEOS受信と呼ばれる方法であれば、取込みするファイルにはヘッダーとフッターとよばれる
取込み判定する行があり、データを取り込む場合はヘッダーとフッターを読み込み
取込みデータかを判定してから織り込み開始を行います。
処理内容が長いのキャプチャ画面を添付します。


コードが長いので、2つの画面となります。 一部重複しております。
テーブル名は英語表記の方が無難です
ACCESSの更新プログラムで日本語表記のソースコードは
不具合が起きる事例がありますので、日本語をやめて
ローマ字表記もしくは、英語表記がいいです。
SQL文にてカラム名(フィールド名)は別名で修飾できます。
AS句の後に日本語表記のカラム名(フィールド名)を付与します。
また、テーブルAS句にて別名を付けた方がいいでしょう。
カラム名(フィールド名)にテーブル名で修飾するときも
テーブル名を簡素な別名を付与することで、カラム(フィールド名)の
修飾がたやすくなるのと、可読性があがります。
またカラム(フィールド名)を修飾するには理由があります。
それは、データベースの検索を早くするのと、データを探すために
ハードディスクのオーバヘッドを軽減するためです。
ここらあたりは小難しい話になるの省略しますが、
SQL文にて別名をつけることは、セキュリティの観点からも
望ましいため、テーブルの設計時において、このことを念頭に
設計してみてください。
あとハンドルネームが無いとやり取りしづらいので
ハンドルネームの記入をお願いします。
ここの回答者は親切な方ばかりなので
ハンドルネームがあったほうが、回答されやすくなりますし
固定のハンドルネームであったほうが、こないだ質問された方だなと
すぐわかるので、回答が付きやくなると思います。