過去ログ

                                Page     412
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼自動発番について  adpanda 03/10/21(火) 8:33
   ┗Re:自動発番について  イケガミ 03/10/23(木) 14:03
      ┗Re:自動発番について  adpanda 03/10/23(木) 14:16

 ───────────────────────────────────────
 ■題名 : 自動発番について
 ■名前 : adpanda
 ■日付 : 03/10/21(火) 8:33
 -------------------------------------------------------------------------
   現在AccessとMySQLをつなげて使っています。
MySQLではAccessみたいにオートナンバーの機能がないので
VBAで自動発番をする方法を教えてください。

MySQLのテーブルでの自動発番したい項目は

echocode int(4) PrimaryKey

としています。
よろしくお願いします。

 ───────────────────────────────────────  ■題名 : Re:自動発番について  ■名前 : イケガミ  ■日付 : 03/10/23(木) 14:03  -------------------------------------------------------------------------
   >MySQLではAccessみたいにオートナンバーの機能がないので
>VBAで自動発番をする方法を教えてください。

DMax 関数で最大値を取得して、+1 をしてやればいいと思います。

 ───────────────────────────────────────  ■題名 : Re:自動発番について  ■名前 : adpanda  ■日付 : 03/10/23(木) 14:16  -------------------------------------------------------------------------
   ありがとうございます。

Accessだけでなく、MySQLとの接続にも問題を抱えていましたので、
質問がわかっている人には変だなと思われていたと思います。

Private Sub ShopId_Enter()
  '自動発番のVBA
  Dim dbs As Database
  Dim kk As Variant        'Nullの可能性を含めてVariant型に設定
   
  Set dbs = CurrentDb       '現在のDBの取得
  
    kk = DMax("ShopId", "shop") 'IDの最大値を探す
    
    If IsNull(kk) Then
      kk = 1         'もしIDがNullの場合1を代入
    Else
      kk = kk + 1       'Nullでない場合は1を足す
    
    End If
  
  dbs.Close
  Me!shopid = kk         'フォームのテキストボックスにIDを入力

    
End Sub

こんな感じで作ってみました。

アドバイス重ねてありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 412