• ベストアンサー

マイクロソフトアクセス:テーブルで注文番号をオートナンバにして00001から始めたい。

こんにちは。お世話になっております。 皆さんのおかげで、あと少しで注文表も終わりです! さて今回の質問は、注文番号を連番にして00001から始めたいのです。 オートナンバを使いましたが、00001が1になってしまいます。 *下記のURLを参考にしてやってみました。 http://www2.moug.net/app/bbs/message.php?cat=b_acopr&id=20041118-000007 ここのURLで INSERT INTO テーブル名 (オートナンバーフィールド名) values (14000); とありますが、私もこれに当てはめましたが、うまくいきません。 INSERT INTO ORDER TABLE (PO#) values (00001); ORDER TABLE=テーブル名 PO#=オートナンバフィールド名 上記の何がおかしいのかもわかりません。 これ以外にも、やり方がありましたらご教授願います。 初歩的な質問ですが、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • gosuke32
  • ベストアンサー率29% (36/124)
回答No.2

そんなにややこしく考えなくっても・・・。 テーブルのデザインビューで注文番号のフィールドプロパティで「書式」があるので、そこに「00000」って入力すれば良いはずですよ。 お試しあれ。

hamptoninn
質問者

お礼

お返事ありがとうございます。 なんて、なんて簡単なことだったのでしょう。 テーブルには、00001と出ていました! フォーム上には出ていなかったので、同じようにやってみると出来ました! 本当にありがとうございました。

その他の回答 (2)

回答No.3

質問の意図と違っていましたらお許しください 書式の問題だと思います。 1.テーブルを「デザインビュー」で開く 2.オートナンバーのフィールドの書式に(下のほうのフィールドプロパティの所)「00000」と入力し上書き保存 これではだめでしょうか?

hamptoninn
質問者

お礼

お返事ありがとうございました。 cinnamon114さんの答えで、出来ました。 ありがとうございました。

noname#223623
noname#223623
回答No.1

最近はAccessさわってないのですが。 > 注文番号を連番にして00001から始めたいのです。 了解。 > オートナンバを使いましたが、00001が1になってしまいます。 正常です。なぜならオートナンバは数値だからです(なにしろナンバですから)。 > INSERT INTO ORDER TABLE (PO#) values (00001); 数値なのでvaluesは1です。 伝票とかで00001と出力したい場合は出力用の書式を設定すればよろしい。 データの持ち方と出力の仕方は別の話です。 どうしてもデータそのものを00001にしたいのなら数値型じゃなくて文字列型になる。

hamptoninn
質問者

お礼

早速のお返事ありがとうございました。 >数値なのでvaluesは1です。 やってみましたが、結果は同じでした。 大文字小文字って関係あるのでしょうか?

関連するQ&A

  • AUTO_INCREMENTのフィールドにインポートするには?

    データの入っていないテーブルにphpmyadminからテキストファイルをインポートしようとしています。 下記のようなinsert文が3000行ぐらいあります。 INSERT INTO `table` (`id`, `name`, `yomi`) VALUES (■,阿部,あべ); 上記のidフォールドにAUTO_INCREMENTが設定されています。 ■にはどのような値をいれればいいのでしょうか? 試しに連番で数字を振ってみたのですがエラーになってしまいました。

    • ベストアンサー
    • MySQL
  • MySQL初心者

    -mysql CREATE DATABASE testdb; use testdb; CREATE TABLE car_table(id int(10),name varchar(50)); INSERT INTO car_table VALUES (2,'乗用車'); INSERT INTO car_table VALUES (3,'オープンカー'); INSERT INTO car_table VALUES (4,'トラック'); SELECT * FROM car_table; これで間違ってるとは思わないんですが、なぜか ERROR 1049(42000): Unknown database 'testdb・・ とでます。なぜなんでしょうか?全然わかりません。 何かの設定ミスかなにかでしょうか?

    • ベストアンサー
    • MySQL
  • 指定された趣味を持つメンバーがいるグループを抽出するSQL

    グループテーブル、メンバーテーブル、趣味テーブルの3つのテーブルがあります。 あるメンバーはあるグループに属しており、趣味を1つ持っています。 以下がそのSQLです。 CREATE TABLE groups ( g_id int primary key ); CREATE TABLE members ( m_id int primary key , g_id int , h_id int ); CREATE TABLE hobbies ( h_id int primary key, h_name text ); INSERT INTO groups VALUES ( 1 ); INSERT INTO groups VALUES ( 2 ); INSERT INTO groups VALUES ( 3 ); INSERT INTO members VALUES ( 1, 1, 1); INSERT INTO members VALUES ( 2, 1, 3); INSERT INTO members VALUES ( 3, 1, 4); INSERT INTO members VALUES ( 4, 1, 4); INSERT INTO members VALUES ( 5, 2, 1); INSERT INTO members VALUES ( 6, 2, 2); INSERT INTO members VALUES ( 7, 2, 3); INSERT INTO members VALUES ( 8, 3, 2); INSERT INTO members VALUES ( 9, 3, 3); INSERT INTO members VALUES ( 10, 3, 4); INSERT INTO hobbies VALUES ( 1, 'sports' ); INSERT INTO hobbies VALUES ( 2, 'music' ); INSERT INTO hobbies VALUES ( 3, 'book' ); INSERT INTO hobbies VALUES ( 4, 'drive' ); 指定された趣味を持つメンバーがいるグループを抽出するにはどうすればいいでしょうか? 例えば、「読書が趣味なメンバーとドライブが趣味なメンバーがいるグループは?」「グループ1とグループ3」のような感じです。 一応自分で考えてみたのが、以下ですが、これだと趣味の指定が増減すると大きくSQLが変わってしまいます。 もっといいやり方はないでしょうか? 私はPostgreSQL8を使ってますが、汎用的なSQLであれば、そっちの方がいいです。 SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'drive' INTERSECT SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'book';

  • MySQLから取り出したものを3つに分ける

    MySQLに以下のようなSQLを打ちました。 create table table_list( id int, task varchar(255) ); insert into table_list values(1,'ほげほげ1-1'); insert into table_list values(1,'ほげほげ1-2'); insert into table_list values(2,'ほげほげ2-1); insert into table_list values(2,'ほげほげ2-2'); insert into table_list values(3,'ほげほげ3-1'); そして、空のdiv要素が3つあります。 このデータベースからidの数値別に、div要素へtaskの文字列を入れたいのですが、どうすればいいのでしょうか? SQLで「select * from table_list」をやってからtaskを取り出すのか、3回SQLで「select task from table_list where id=1」のようにするのがよろしいんでしょうか?

    • ベストアンサー
    • PHP
  • 直近2年度連続で減少していない年度を抽出

    以下のテーブルの様に時系列が抜けているテーブルから直近2年度連続で減少していない年度を 抽出しようとしています。 /* year|sale --------- 1990|50 1992|50 1993|52 1994|55 1997|55 */ /* CREATE TABLE sales2 (year INTEGER NOT NULL , sale INTEGER NOT NULL , PRIMARY KEY (year)); INSERT INTO sales2 VALUES (1990, 50); INSERT INTO sales2 VALUES (1992, 50); INSERT INTO sales2 VALUES (1993, 52); INSERT INTO sales2 VALUES (1994, 55); INSERT INTO sales2 VALUES (1997, 55); */ 以下の記述で直近の年度までなら表示できているとは思うのですが2年連続となると やり方が思いつきません。誰かご教授いただけないでしょうか? select year,sale from sales2 s1 where sale >=(select sale from sales2 s2 where s2.year = (select max(year) from sales2 s3 where s1.year > s3.year)) order by year ;

  • Using temporary; Using filesort を回避したい

    はじめまして。よろしくお願いします。 下記の場合、Using temporary; Using filesort を回避するには どうしたらよいでしょうか。 次の 2 つのテーブルがあります。 CREATE TABLE `test1` ( `f1` int(11) NOT NULL, `f2` int(11) NOT NULL, PRIMARY KEY (`f1`,`f2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `test1` VALUES ('1', '2'); INSERT INTO `test1` VALUES ('1', '3'); INSERT INTO `test1` VALUES ('1', '4'); INSERT INTO `test1` VALUES ('2', '1'); INSERT INTO `test1` VALUES ('2', '3'); CREATE TABLE `test2` ( `f1` int(11) NOT NULL, `f2` varchar(20) default NULL, `f3` varchar(20) default NULL, PRIMARY KEY (`f1`), KEY `ix_f2_f3` (`f2`,`f3`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `test2` VALUES ('1', 'A', 'a'); INSERT INTO `test2` VALUES ('2', 'B', 'b'); INSERT INTO `test2` VALUES ('3', 'C', 'c'); INSERT INTO `test2` VALUES ('4', 'D', 'd'); 次の SELECT を実行すると Using temporary; Using filesort が 現れてしまいます。 explain select test2.f2, test2.f3 from test1, test2 where test1.f1 = 1 and test1.f2 = test2.f1 order by test2.f2, test2.f3; order by ... をなくすと問題ないのですが、ソートは必要です。 複数のキーに対してORDER BYを実行する場合 インデックスを使用できないとあるので ix_f2_f3 は使用されず Using filesort となるのはわかるのですが、 Using temporary となる理由と回避方法がわかりません。 ご教示よろしくおねがいいたします。

  • insert文等で「`」の有無で失敗するテーブルとしないテーブルがある。

    XAMPP(winXP、PHP4)を使っています。 Aのテーブルでは $query= "insert into table (a,b,c,d) values('1','2','3','4')"; $result = mysql_query($query); でデータが追加されるのに、Bのテーブルでは失敗しました。 今日ずっと何が間違っているのかわからなかったのdですが、 $query= "insert into table (`a`,`b`,`c`,`d`) values('1','2','3','4')"; $result = mysql_query($query); とすると成功しました。 なぜAのテーブルでは「`」が無くても成功したのに、Bのテーブルでは必要なのでしょうか。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • 最初に挿入された行だけ取得したい

    このジャンルでお願いします。 次のようなテーブルで CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user (name) VALUES ('user1'); INSERT INTO user (name) VALUES ('user2'); INSERT INTO user (name) VALUES ('user3'); CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (name) VALUES ('item1'); INSERT INTO item (name) VALUES ('item2'); INSERT INTO item (name) VALUES ('item3'); CREATE TABLE IF NOT EXISTS user_item ( id int(11) NOT NULL AUTO_INCREMENT, user_id INT, item_id INT, PRIMARY KEY(id), FOREIGN KEY (item_id) REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (user_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user_item (user_id, item_id) VALUES (1, 1); INSERT INTO user_item (user_id, item_id) VALUES (2, 1); INSERT INTO user_item (user_id, item_id) VALUES (3, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 3); INSERT INTO user_item (user_id, item_id) VALUES (3, 3); user_itemテーブルでのselectで、 user_idが1で一番最初に挿入された行だけ を取得したいのですが、どのようなSQL文にすれば良いのでしょうか? この例なら INSERT INTO user_item (user_id, item_id) VALUES (1, 1);←取得 INSERT INTO user_item (user_id, item_id) VALUES (2, 1); INSERT INTO user_item (user_id, item_id) VALUES (3, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 2);←user_id=3が最初に挿入されているので取得しない INSERT INTO user_item (user_id, item_id) VALUES (1, 3);←取得 INSERT INTO user_item (user_id, item_id) VALUES (3, 3);

    • ベストアンサー
    • MySQL
  • 階層構造のテーブルの行の取得について

    このジャンルでお願いします。 次のようなテーブルで CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user (name) VALUES ('user1'); INSERT INTO user (name) VALUES ('user2'); INSERT INTO user (name) VALUES ('user3'); CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, parent_id INT, name varchar(32) NOT NULL, FOREIGN KEY (parent_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (parent_id, name) VALUES (null, 'item1'); INSERT INTO item (parent_id, name) VALUES (1, 'item2'); INSERT INTO item (parent_id, name) VALUES (2, 'item3'); INSERT INTO item (parent_id, name) VALUES (3, 'item4'); INSERT INTO item (parent_id, name) VALUES (2, 'item5'); INSERT INTO item (parent_id, name) VALUES (null, 'item6'); INSERT INTO item (parent_id, name) VALUES (6, 'item7'); INSERT INTO item (parent_id, name) VALUES (null, 'item8'); CREATE TABLE IF NOT EXISTS user_item ( id int(11) NOT NULL AUTO_INCREMENT, user_id INT, item_id INT, type varchar(16) NOT NULL, PRIMARY KEY(id), FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (item_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user_item (user_id, item_id, type) VALUES (1, 1, 'allow'); INSERT INTO user_item (user_id, item_id, type) VALUES (1, 3, 'deny'); INSERT INTO user_item (user_id, item_id, type) VALUES (1, 7, 'allow'); user_itemのuser_idが1のitemの行を取得したいのですが、 その条件として ・user_itemテーブルのtypeが'allow'のitem_id以下のitemの行 ・ただしtypeが'deny'のitem_id以下の行は除く この例だと、user_itemの INSERT INTO user_item (user_id, item_id, type) VALUES (1, 1, 'allow'); の行によってitemテーブルの INSERT INTO item (parent_id, name) VALUES (null, 'item1'); INSERT INTO item (parent_id, name) VALUES (1, 'item2'); INSERT INTO item (parent_id, name) VALUES (2, 'item3'); INSERT INTO item (parent_id, name) VALUES (3, 'item4'); INSERT INTO item (parent_id, name) VALUES (2, 'item5'); が取得候補になりますが、 INSERT INTO user_item (user_id, item_id, type) VALUES (1, 3, 'deny'); によって INSERT INTO item (parent_id, name) VALUES (2, 'item3'); INSERT INTO item (parent_id, name) VALUES (3, 'item4'); の行は除かれ、 INSERT INTO item (parent_id, name) VALUES (null, 'item1'); INSERT INTO item (parent_id, name) VALUES (1, 'item2'); INSERT INTO item (parent_id, name) VALUES (2, 'item5'); の行が取得されます。 つまりitemテーブルにおいて上の階層の直近の(user_itemと結合して取得した)typeが 'allow'である場合のみ取得したいのです。 INSERT INTO item (parent_id, name) VALUES (null, 'item1');←取得 INSERT INTO item (parent_id, name) VALUES (1, 'item2');←取得 INSERT INTO item (parent_id, name) VALUES (2, 'item3'); INSERT INTO item (parent_id, name) VALUES (3, 'item4'); INSERT INTO item (parent_id, name) VALUES (2, 'item5');←取得 INSERT INTO item (parent_id, name) VALUES (null, 'item6'); INSERT INTO item (parent_id, name) VALUES (6, 'item7');←取得 INSERT INTO item (parent_id, name) VALUES (null, 'item8'); 複雑ではありますが、これはどのようなSQL文にすれば良いのでしょうか?

    • ベストアンサー
    • MySQL
  • mysqlのsqlスクリプトエラーについて

    バージョンはmysql-4.0.14b-winです。 + mysql-connector-java-3.0.8-stable-bin 昔、このsqlを実行したときはうまくいっていたのですが 最近実行すると以下のようなエラーがでます バージョンのちがいがあるのでしょうか? unique制約で引っかかっているみたいです。 <実行> +----------------------------------------------+ | 1.MYSQLで以下のようにテーブルを作成しました。| +----------------------------------------------+ C:\>mysql\bin\mysqladmin -u root -p CREATE user Enter password: root C:\>mysql\bin\mysql -u root -p user < c:\syain.sql Enter password: root <問題点> 以下のようなエラーがでましたERROR 1170 at line 8: BLOB column 'username' used in key specification without a key length <実行したsql文> syain.sqlの内容は以下のとおりです。-- -- Host: localhost Database: user --------------------------------------------------------- -- -- Table structure for table 'table1' -- create table table1 (     id integer primary key, username text not null unique, password text not null, idnumber text not null, department text not null, mail text not null, extension text not null); -- -- Dumping data for table 'table1' -- --INSERT INTO table1 VALUES (1,'Peter','123456','1201','情報システム部','peter@it.planet.com','101'); INSERT INTO table1 VALUES (1,'Robert','abcdef','1202','情報システム部','robert@it.planet.com','102'); INSERT INTO table1 VALUES (1,'Mike','abcdef','1203','企画部','mike@pl.planet.com','201'); INSERT INTO table1 VALUES (1,'Celline','abcdef','1204','営業部','celine@mk.planet.com','301'); INSERT INTO table1 VALUES (1,'Akira','abcdef','1205','技術部','akira@tec.planet.com','401'); INSERT INTO table1 VALUES (1,'Eric','abcdef','1206','経理部','eric@ac.planet.com','501'); INSERT INTO table1 VALUES (1,'Rika','abcdef','1207','営業部','rika@mk.planet.com','302'); INSERT INTO table1 VALUES (1,'Diana','abcdef','1208','営業部','diana@mk.planet.com','303'); INSERT INTO table1 VALUES (1,'Britney','abcdef','1209','企画部','britney@pl.planet.com','202'); INSERT INTO table1 VALUES (1,'Takuya','abcdef','1210','技術部','takuya@tec.planet.com','402'); ご教授よろしくお願いします

    • ベストアンサー
    • MySQL

専門家に質問してみよう