Constructive Criticism.

1) You definitely want to use parameterized Queries, instead of Building the SQL yourself.
2) you should use .DataField as the field names instead of the Control Names, to let yourself work with databases other than ones you create/spec
3) There's almost no code tying it to vbRichClient, you could adapt this to any backend.

Thanks for sharing