"FieldName" is not an index in this table. Error 3800

This is the code I'm using, error line highlighted:

Option Compare Database Public Function VerifyAcct(AcctNum As String) Dim dbDatabase As Database Dim rsAcctNumber As Recordset Set dbDatabase = CurrentDb Set rsAcctNumber = dbDatabase.OpenRecordset("CAM_Portfolio_Query", dbOpenTable) With rsAcctNumber
.Index = "Account-Number"
.Seek "=", AcctNum
If .NoMatch = True Then
MsgBox "NotFound"
Else
MsgBox "Found"
End If End With
End Function

It is giving me Runtime 3800, "FieldName" is not an index in this table.
In the table CAM_Portfolio_Query, I set the [Account-Number] field to be both the key and indexed, with no duplicates allowed.

Yet I still get this error

Sponsored Links:

Related Topics

If Statement
If I put an Iff statement into a Query such as:

IIf([Table A]![FieldName] Like "A" Or [Table A]![FieldName] Like "B","Answer A", "Answer B")

It works ok but as the table name is the same why do I have to repeat it. If I try:

IIf([Table A]![FieldName] Like "A" Or Like "B","Answer A", "Answer B")

It does not seem to evaluate correctly.

This means that multiple "Or" criteria referencing the same field results in very long queries. I know you dont need to in VBA but I am doing this in a query grid.


Module Problem
I ran an "Analyze Performance" on one of my tables and it suggested to index a particular field in a table that is created by running an append module. Now that I have created this index I am getting corruption errors and when I select my module I get the error; "The module name 'modImportData' is misspelled or refers to a module that doesn't exist".

Should Itake off the index in the table or is there a way to redo the module to account for the index? It is a big table and want it to run as fast as possible when I run a query off it.


Change duplicate values Error Msg in the index, primary key, or relationship
folk,

Does anybody knows how to control the the below msg to something like this through VBA:
"The Item: " & ItemNo & " already exists in the table."
instead of this:
Msg:
"The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again."

What is the Err.Number for this error?


error 3251 using table.index = "primaryKey" on an Access back-end table
Office 2007, XP Pro SP3

routine:
....
tblLoans.Index = "PrimaryKey"


Import Table Error
I get error msg: "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again."
when I try to import a .csv file. I googled and could only find reference where there is a problem with autonumbering or an existing table field: [LINK]
This does not apply as I get the error when importing into Access 2007 a new .csv table.


"not an index in this table" error
I have a file somewhere that seems to be corrupted and I don't know what to do. "Id" is not an index in this table is the error message I'm getting.


"not an index in this table" error
I have a file somewhere that seems to be corrupted and I don't know what to do. "Id" is not an index in this table is the error message I'm getting


CreateRelation error 3409
I want to rebuild a table (new) with indices and relationship links to the other tables (old) in my db. I have followed examples but can't seem to shake the 3409 error - "Invalid field definition [field_name] in definition of index or relationship".
[code]
Error 3409 pops on the append.rel statement. I've examined the index I created on the old table. The field name I used to create the index is the same field name used to build the relationship. Both fields are primary keys. There are records in both tables.

On a related topic, if I want to recreate a table that has been dropped for some reason, what I understrand is that I can create an index on the table before populating it with data but I cannot create a relationship to another table until the recreated table has data in it. Is that correct?


Problem Indexing Table in Access
I have a large database (3 millions lines) that I'm trying to index. The table is called ITEM_TRANSACTIONS and the field I want to index is called ITEM_NUMBER.

Every time I try to index, (I go in design view and set the "index" to yes with duplicates OK.

Error:
CANNOT OPEN DATABASE ITEM_NUMBER. It may not be a database that you application recognizes, or the file is corrupt.

Item_number is a field not a database. It just don't get it. I've tried to index other fields. same outcome.


An IIF Statement that is killing me
Fairly new to access and I've searched all over to get the syntax on this right.

I have a table with a field [Response] and a field [Index Date] along with an Id number.

I've tried this IIF statement but keep getting the Invalid Syntax error - "You may have entered an operand without an operator"

Due Date: IIF([Response]="IC Review",[Index Date]+30, IIF([Response]=3MTH F/U,[Index Date]+90, IIF([Response]=6MTH F/U,[Index Date]+180, IIF([Response]=12MTH F/U,[Index Date


VB Code using variables for Forms controls
Like to put the form property name in a variable. I have a table that controls form element. Hols formname, fieldname, Propertyname and the Value I want the property set to.

Formnname = "test_form"
FieldName = "command0"
Propertyname = "Visible"
Forms(Formname).Form(FieldName).Propertyname = False


Can not seem to figure out if you can put the property name as a variable like the form name and fieldname.


Access 2007 error 3800 'ID' is not an index in this table
I'm working with Access 2007 and have never had this issue, but it's causing me MAJOR headaches. . .whenever I open my DB, this message pops up with a button for OK or Help. Help does nothing and if I hit OK, I have to use Esc to get through the number of records I have with this issue until it's gone through the whole DB.

Then sometimes (but not everytime) I get a message that says "The database cannot be opened because the VBA project contained in it cannot be read. The database can be opened only if the VBA project is first deleted.

Deleting the VBA project removes code from modules, forms and reports. Your should back up your database before attempting to open the database anddelete the VBA project."


Eerror No unique index found
I was trying to do a many to one relationship and got this error. Hotel Name to Hotel Name.

Error msg: "No unique index found for referenced field of the Primary table."

How do I fix it?


Eerror No unique index found
I was trying to do a many to one relationship and got this error. see attachment. Hotel Name to Hotel Name.

Error msg: "No unique index found for referenced field of the Primary table."


How to reference a fieldname with a variable in DAO's rs!FieldName syntax
I pass a fieldname argument (SourceFldName) to this sub. Let's say the field name is [FirstName]

Sub TESTING(TblName As String, SourceFldName As String, TargetFldName As String)
Dim rs As DAO.Recordset, MySQL As String, PString As String, MyBool As Boolean
On Error GoTo Bottom
MySQL = "SELECT " & SourceFldName & " FROM " & TblName & ";"
Set rs = DBEngine(0)(0).OpenRecordset(MySQL)
rs.MoveFirst
Do While Not rs.EOF
Debug.Print rs!FirstName (THIS IS WHAT I WANT - HOW CAN I USE THE ARGUMENT VARIABLE?)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Bottom:
MsgBox "end of the line"


find the closest year
I have tables "A" and B" that are linked through the variable CN6. I want to select the variables of Table B (it is variable INDEX in this case) where the year in Table B is the closest to the year in table A (by closest I mean the closest lower or equal year)
I wrote the following query
SELECT A.Deal, B.INDEX
FROM A INNER JOIN B ON A.CN6 = B.CN6
WHERE (((B.INDEX)=Max([B].[year]<=[B].[Year])));

I am receiving an error that I cannot use an aggregate function in the where clause


find the closest year
I have tables "A" and B" that are linked through the variable CN6. I want to select the variables of Table B (it is variable INDEX in this case) where the year in Table B is the closest to the year in table A (by closest I mean the closest lower or equal year)
I wrote the following query
SELECT A.Deal, B.INDEX
FROM A INNER JOIN B ON A.CN6 = B.CN6
WHERE (((B.INDEX)=Max([B].[year]<=[B].[Year])));

I am receiving an error that I cannot use an aggregate function in the where clause


Text Import Error: "...not successful because they would create duplicate values..."
I have a file exported from an accounting system that has no extension. The type just says "file". When I had Windows XP, I added the .txt extension (in the file name itself without opening) and was able to import the file into Access without issue.

With Windows 7, it seems that this practice leads to the following error when the file is imported to Access:

"The changes you requested to this table were not successful because they would create duplicate values in the index, the primary key, or relationship. Change the data in the field orfields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again."

I know that none of the fields of the destination table are indexed and there is no primary key. The table has not changed in between the windows conversion. In addition, I get the sameerror if I import into a new table.

My current work around is to open the .lis file in Excel and save it as text with no further modification to the file. When this is done, the file imports flawlessly. I would like to avoid this as the file is very large and it takes some time to open.

other than something related to the primary key or index (which again I do not have).


Function to select field from a table using several criteria
I am new to VBA and need help creating a function to select data from a table in the current database. I would like the function to accept parameters (fieldname, tablename, one or more criteria). I would call the function from any other procedure or from a query field. I am using Access 2007 in the XP.

I would call the function as in this example:

MyFunction("fieldname","tblTableName","criteria1 = 5 and criteria2 = 45")

It would be nice if it accepted numeric as well as strings in the criteria


Date conversion from YYYYMMDD to DD/MM/YYYY
I am trying to convert the date in a table (table name - 2009-2011 event records) with the field name 'Date of registration' with the data type numer and layout YYYYMMDD, into DD/MM/YYYY, does anyone know the code to do this please? I have tried other codes off the internet such as:

Format(DateSerial (Left([FieldName],4),Mid([FieldName],5,2),Right([FieldName],2)), "dd/mm/yyyy")

But access isn't allowing me to start the query with Format,