Solved

Visual Basic & SQL Server 2000

Posted on 2002-06-27
10
155 Views
Last Modified: 2013-11-25
I have set a default value for a field in a table and when inserting new rows in vb with ado the default values never get populated?

When adding rows through the ent. manager the default values get populated.

Thanks,
geo90
0
Comment
Question by:geo90
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 1

Expert Comment

by:Benjy
Comment Utility
How are you adding new rows in ado? are you inserting values while adding the rows?
0
 
LVL 43

Expert Comment

by:TimCottee
Comment Utility
How do you insert the new records? If you use an insert statement, make sure that you do not specify the fields for which you need to use the defaults.

adoConnection.Execute "Insert Into MyTable Fields(MyField1,MyField2) Values ('hello','goodbye')"

If you have additional fields with defaults then these should be populated.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
Regarding Tim's comment: If i am not wrong, using addnew method doesn't populates default values.
0
 

Author Comment

by:geo90
Comment Utility
I'm using ado with the addnew method.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
Then, use Tim's code.
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 

Author Comment

by:geo90
Comment Utility
Well creating sql strings is a messy deal when creating them dynamically.  It seems that the database would take care of the default values, not the method that adds the row. Hmmmmmm
0
 
LVL 43

Accepted Solution

by:
TimCottee earned 50 total points
Comment Utility
geo90, it would and does, however you have to understand what is actually happening when you use .addnew etc; VB builds an implicit SQL statement from the fields collection which uses all of the fields in the collection and the default value of the datatype for each field (not the default for the field itself).

So if you had three fields but only set values for two of them:

Field            Field1 Field2 Field3
Default          'AA'   'BB'   'CC'
Datatype Default ''     ''     ''

With adoRecordset
  .AddNew
  .Fields("Field1") = "Hello"
  .Fields("Field2") = "Goodbye"
  .Update
End With

The statement that would be built behind the scenes is:

Insert Into MyTable (Field1,Field2,Field3) Values('Hello','Goodbye','')

Which is the default value for the string datatype.
0
 

Author Comment

by:geo90
Comment Utility
Well that didn't help much...
I knew it wasn't working :>)
0
 
LVL 43

Expert Comment

by:TimCottee
Comment Utility
'C' geo90, don't shoot the messenger. We cannot change the behaviour of some things whether we like it or not.
0
 
LVL 6

Expert Comment

by:Mindphaser
Comment Utility
geo90

Please read our help about questions at http://www.experts-exchange.com/jsp/cmtyQuestAnswer.jsp . TimCotte's answer might not be what you expected, nevertheless it is true and therefore a at least GOOD answer. He even showed you ways how to solve your problem with other means and that's usually an 'A' grade!

If it's not possible he can't change the world, we have to accept these facts also ... so please accept my decision to chang ethe grade to 'A' here.

** Mindphaser - Community Support Moderator **
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now