Select Categories Below
Advertisement
Start Your Own Q&A Site
Create your own Q&A site easily, allowing you to quickly grow a new community around any subject matter or generate new organic traffic for your existing website.
Status: Closed Points: 75 Time: 06:05 - May 29, 2007
dustPuppy
I need to update a database (access, jet sql) automatically and in that process i need to check first if a table contains a specific field, before I add that field to the table. What is the syntax to do that?
Categories:
Add Categories
When adding more than one category, separate them with commas.
PeterNZ
Date:: May 30, 2007
Time:: 00:09
Try CurrentDB.TableDefs("Table").Fields("Field").Name this will return the field name if the column exists. Otherwise it will throw an error. Cheers Peter
nidhi
Time:: 05:31
There is nothing u can do in SQL, it has to be done via VBA. quick way is as Peter suggests. But if u trap for errors then u need to make sure u get the right error number. eg On Error Resume Next Debug.Print CurrentDb.TableDefs("MyTbl").Fields("MyField").Name If Err.Number = 0 Then Debug.Print "Field Exists" ElseIf Err.Number = 3265 Then Debug.Print "Field Does Not Exist" Else Debug.Print Err.Number, Err.Description End If The other way if u dont want to catch certain errors is to loop thru the field collection in the table then add it that way. U can add fields in vba as well, just in case u didnt want to bother with sql eg 'This bit loops thru field collection and sets a flag Dim db As DAO.Database Dim tbl As DAO.TableDef Dim i As Integer Dim bFound As Boolean bFound = False Set db = CurrentDb Set tbl = db.TableDefs("MyTbl") For i = 0 To tbl.Fields.Count - 1 'I do a lowercase comparison just in case If LCase$(tbl.Fields(i).Name) = LCase$("MyField") Then bFound = True Next i Debug.Print "Found", bFound 'This bit adds that field. In this case, I am adding it as text size 20 Dim fld As DAO.Field If bFound = False Then Set fld = tbl.CreateField("MyField", DB_TEXT, 20) tbl.Fields.Append fld End If
Date:: Jun 04, 2007
Time:: 01:29
thanks guys. I read that in the case of SQL Server it is actually possible, if you query the sys-tables. Anyway that option doesn't work in the access-case, so I guess I'll have to do it by code as you suggested.
smuenchaisit
Date:: Nov 28, 2007
Time:: 03:19
what is CurrentDb ? i dont know how to declear this.
Question Answered
This question has been closed, and points have been rewarded to the following experts:
You're welcome however to comment or give additional information or if you wish, you have the ability to write a Tutorial in the Tutorial Area.
Answer this Question
New User
Email:
Upon submission of this form, you will automatically be registered as a Quomon user and we will send your login information to this address
Registered User
Username:
Password:
Forgot Your Password?
Enter your email address below and we will resend your login information to you.
Login Information Sent
Questions
whats the best food to eat during midnight?
How to identify the tiffany jewelry? www.tffanycheapmall.com.
Send an email alert to each user of the php application based on criteria
How I Increased My AdSense Earnings?
how to choose the lady dress ?
How can I fulfill the minimum requirement to make your computer support 3D?
You have 100 characters to use
Rank
Expert
Points
1.
10354
2.
6493
3.
5596
4.
4848
5.
3487
6.
2840
7.
2770
8.
2303
9.
1820
10.
917
Register today to share your knowledge with the community and be recognized and rewarded for your contributions.
Register Here
"Psst, Quomon is a great site. Pass it on." Tell a Friend | Link To Us | Save to Delicious | Digg it
Language Options
English:
Español:
Sponsors
Questions and Answers Software