i'm getting this message when i try and change a record in a table via a recordset... but i am using CursorType = adLockOptimistic which i thought let you make changes to the table
here is my code so far
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.CursorType = adLockOptimistic
rst.Open "TBL_TmpSubmission", CurrentProject.Connection
If rst.RecordCount > 0 Then
Do While Not rst.EOF
MsgBox rst!PropertyType, vbOKOnly, "debug"
If DCount("[PropertyType]", "[TBL_PropertyType]", "PropertyType = '" & rst!PropertyType & "'") <> 1 Then
rst!PropertyType = DLookup("[PropertyType]", "[TBL_PropertyType]", "IDPropertyType = " & rst!PropertyType)
MsgBox "property changed", vbOKOnly, "debug"
Else
MsgBox "good property", vbOKOnly, "debug"
End If
rst.MoveNext
Loop
End If
rst.Close
am i using the wrong combination or cursor and lock type here? reading the help it seems i should be able to make changes to the table.
I have two tables that have the exact same fields. In table1 I have records that need to be UPDATED into table2. I tried an Update query and out of 600 records only half of those got updated. In my update query I joined tbl1 and tbl2 by Location (LOC) I checked for Nulls, Blanks, spaces, you name it. I can't figure why they all didn't get updated. I created a SQL query and go the exact same results. Ideally, I would like to create something in VBA to do this. I do not have any forms linked to these tables. In all I have about 600 records and 15 different fields that need to be updated. My example is only for one field.
sql example below. Which is the Access Sql in the Query
I have a database form with a tab control, combo boxes, and subforms. The main form has a combo box with a list of clients. When I first created the form, there were only 20 clients. I recently added 15 more to the client table (by hand - not through the form), but the form has not updated itself with these new records. It acts like the information has not been entered into the tables when it has been. So when I select a newly added client, I end up seeing fields populated with the first client's information.
This is the code I have for the combo box afterUpdate method: ' Find the record that matches the control. Dim rs As Object
Set rs = Me.Recordset.Clone rs.FindFirst "[Clients_ClientID] = " & Str(Nz(Me![Combo50], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark
I would guess that I would just need to update the recordset...:confused: Any ideas?
I have a form that is based on dynamic query. There is a "main" form where a user selects search criteria from 2 fields. This then calls another form, where the results are displayed.
I am trying to update the record set at the top of my code in the form. I am getting a prompt to "enter a parameter" when I execute. Can some one help?
Database attached...
Public Function refresh() ' Check for LIKE job id If Forms!main.job_id > "" Then varWhere = varWhere & "[JobID] LIKE """ & [Forms]![main]![job_id] & "*"" AND " End If
' Check for LIKE title and description If Forms!main.keyword > "" Then varWhere = varWhere & "[JobTitle] LIKE """ & [Forms]![main]![keyword] & "*"" AND " End If
' Check if there is a filter to return... If IsNull(varWhere) Then varWhere = "" Else varWhere = "WHERE " & varWhere
' strip off last "AND" in the filter If Right(varWhere, 5) = " AND " Then varWhere = Left(varWhere, Len(varWhere) - 5) End If End If
BuildFilter = varWhere
' Update the record source Me.RecordSource = "SELECT * FROM Acacia_Joblist_all_knowledge " & BuildFilter End Function
I have a form that is based on dynamic query. There is a "main" form where a user selects search criteria from 2 fields. This then calls another form, where the results are displayed.
I am trying to update the record set at the top of my code in the form. I am getting a prompt to "enter a parameter" when I execute. Can some one help?
Database attached...
Public Function refresh() ' Check for LIKE job id If Forms!main.job_id > "" Then varWhere = varWhere & "[JobID] LIKE """ & [Forms]![main]![job_id] & "*"" AND " End If
' Check for LIKE title and description If Forms!main.keyword > "" Then varWhere = varWhere & "[JobTitle] LIKE """ & [Forms]![main]![keyword] & "*"" AND " End If
' Check if there is a filter to return... If IsNull(varWhere) Then varWhere = "" Else varWhere = "WHERE " & varWhere
' strip off last "AND" in the filter If Right(varWhere, 5) = " AND " Then varWhere = Left(varWhere, Len(varWhere) - 5) End If End If
BuildFilter = varWhere
' Update the record source Me.RecordSource = "SELECT * FROM Acacia_Joblist_all_knowledge " & BuildFilter End Function
ADODB.Recordset (0x800A0BCD) Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Code: <% function combomaker(elSQL, elFieldNameID, elFieldName, elSelected, elConn) ' This function creates a generic combo box with values from a table dim elRS set elRS = server.CreateObject("ADODB.Recordset") set elRS = elConn.Execute(elSQL) elRS.MoveFirst
do while not elRS.eof response.Write "<option value='" & elRS.fields(elFieldNameID) & "'" if elSelected <> "" then if cstr(elRS.Fields(elFieldNameID)) = elSelected then response.Write " selected " end if else if elRS.BOF then response.Write " selected " end if end if response.Write ">" & elRS.fields(elFieldName) & "</option>" & vbCrLf elRS.MoveNext loop elRS.close set elRS = nothing end function %>
While the validation runs a boolean keeps track of validated input and errored input.
After validation the validated input is dumped in the table.
Now what I want is de saving the errored record from "rsSQLIn" to be copied to a new .csv file.
The problem I have is that I cant seem to get the current record from the recordset "rsSQLIn". How do I reference this? I need the complete set of 24 fields being the same within "rsSQLIn"
My form respectively subform has a couple of problems related to the recordset as it is available in VBA.
The mainform contains material data, the subform contains the components of that material and a quantity, while the components are materials themselves. The subform's control source is an SQL statement created by the query builder.
Everything worked fine before i replaced the material-selecting combobox in the continuous subform by a textbox and a button. That button leads to another (dialog) form with some filtering options, which in turn returns the number of the selected material. This material gets inserted into the textbox. To this point it works fine.
But when i enter a quantity before i selected a Material, i get an error message after selecting the Material: This Action was Cancelled by an Associated Object. This happens while executing the following VBA Code on click of the material selection button (exact position commented in code):
Code: Private Sub cbuSelectComponent_Click() ' Select component Dim SQL As String Dim rs As Recordset DoCmd.OpenForm "Material Selector Dialog", , , , , acDialog, "Dialog" If GLB_selected_mat = -1 Then 'cancel
[Code] ....
I've found the following Microsoft KB Article: [URL] ..... In their example code they use:
' Restore text box value to the original record contents ' in this case, that is NULL datDataCtl.UpdateControls
I assume this is the relevant part, but i have no DataControl (what's that?) and neither found an UpdateControls method in the subform object.
The second error, "no current recordset", occures when i edit an existing component line in the subform that has been added right before (also using the same event and code as mentioned above). If i close the form after adding the component and open it again, it's no problem.
Is there a way to print the current record from a dao.recordset?
This is an exercise to compare data content.
I have a table with 30 fields and thousands of rows (rs1).
I'm comparing it with a copy of the same table (rs2) that has the same number of fields and the same rows and almost the same content.
I can loop through the recordsets and get the cursor to stop on a field whose values don't match, lets say on row #x
and the programmed message will say something like:
"ROW: 699 Field: [RequestStatus] rs1.VALUE: Closed, DOES NOT MATCH rs2.Value: VOID, in the comparison recordset"Then I'd like to print the entire Row, Row #699.
I thought I could use rs1.getrows but I'm not sure how to make that work.
Code: Function Write_rstADO_to_CurrdB_Table() 'Assumes you have already setup a DSN to your Server 'Assumes YOURDESTINATIONTABLE is the same structure as your SERVER.TABLE Dim cnnADO As ADODB.Connection Dim wkspDAO As DAO.Workspace
I am OK creating a SQL query to update a table in a second database from a look-up table in the second database, and I can create a query to update a table in the current database from a look-up table in the current database - simple.
However, I am trying to create an Update Query to update a table in a second database from a look-up table in the current database.
(and I want to avoid copying the look-up table to the second database.)
I am using and UPDATE Sql statement to update a firld in a form to a table. However, I get the message updating 140 records etc. How can I get the SQL/Macro to simply update teh record I am currently working on?
I have a linked table to a DB2 database. this table contains key-pair values and has about 140k records.
I use a Sub to update the value of a specific record.
The sub starts by opening the needed DAO recordset Then it uses the rs.Findfirst method It checks if rs.Nomatch is not true (so the records exists!) Then it starts updating the record with rs.edit rs!value1 = myvalue1, rs!value2 = myvalue 2 rs.Update There is where I get the '3021 No current record' error
I use the same sub on the same table to update to different parts. One part works the other gives me the error.
I'm having difficulties creating a sql statement which updates data in another Access database from a current database.
I'm able to do an insert and delete statement just perfectly, but not an Update. :confused:
For example, here is a dummy sample (which does not work):
Update tbl_test1 IN '\C:Tempabc.mdb', tbl_test2 set tbl_test1.Name = tbl_test2.Name Where tbl_test1.ID = tbl_test2.ID
I tried a couple of variations, however, I keep getting an error. Also, I don't want to create a database link (due to the sheer complexity of my project, which I'll spare you the details..)
Does anyone know how to do this? I searched the forums and came up with zilch! =(.. Help??!
Hi I have a forrm (Orders) , with a subform (Order Details)
Depending on a selection of a list field it makes certain field visible in the subform.
If I go the next record and select the list field it updates fields in the subform ( Visible ( True or False )
But if I go back to the previousl record it doesnt update the fields that are relavent to the option picked in the List Filed ( Which I have set to after update ). It works fine if I re-select the option in the list field
How do I set it to update the subform field automatically as I scroll through records?
I tried OnCurrent property but I dont think this is the correct one.
Combo box on continuous form should have the control source listed as the field on the form that will be updated. The Row Source, however, is a query that includes 2 things: the field on the form that will be updated (this part will be nonvisible in your form) and the table/query of selections you want to show up in the combo box (visible). Then ensure the Bound column is set to 1 and the Column count is set to 2 with Column Widths as 0";1"
I am creating a database that tracks current projects for my team at work.
Some projects are only due once (e.g., mailed brochures due on 1/1/14) and some are due at scheduled intervals (e.g., status report due monthly, quarterly, etc.)
Ultimately, I'm hoping that my end result will allow us to click on a form and look at what everybody has due that day, in the next 7 days, and so forth.
Special situation: The SQL Server Linked Server across the country is linked to a Read Only Oracle DB. This data pull works perfectly and populates the Subform.
The problem is that Oracle can take 3 to 6 seconds to retrieve the single record depending on the network traffic through a small pipe.
The code below shows the RecordSource for the SubForm. clicking on a list box supplies the value. Then 3 to 6 seconds later, the subform populates.
The actual Recordset for this Recordsource is needed to conduct Validation on each field. Normally this would be on SQL Server, I might just create a Recordset Oject and run this SQL statement again in 1 milisecond. In this case, it will probably take an additional 3 to 6 seconds. Avoiding another lengthy round-trip to Oracle would be prefered.
Goal: How does one grab, clone, or other wise reference the existing recordset for the SubForm?
Note: Immediate Window - One single field can be returned quickly
There are 48 fields that need validation - is there a way to reference the entire recordset?
Immediate Window during Break Mode: ? me.fsubsrNavSHLBHL("NavSH_QQ") NESE ' this is the correct value for the current recordsource
Set a breakpoint right after the line: fsubsrNavSHLBHL.Form.RecordSource = "Select * from vsrNavigatorSHLBHL where Well_ID =" & txtNavWellID.Value
Immediate Window: ? me.fsubsrNavSHLBHL.Form.RecordSource Select * from vsrNavigatorSHLBHL where Well_ID =91229
I had copy/paste from MS Word, FileMaker Pro and DOS into MS Access Memo field. They act very strange. Is it t a way to copy these text out to some othher format to script them to MS Access supported format and paste them back into MS Access?
I want to create a database using MS Access that can be accessible by 80 users for information search purpose. At the same time at least 20 users out of 80 can make modifications. Need suggestion will that be possible in access.
The database will store in shared drive. Also want to know how to lock a record let say if user1 has access certain record for modifications than the second user can access database but not allow to modifying the record which is already under modification phase.
I am thinking about creating a DB using Access for a business. However, my wife mentioned to me that her company is looking at software for database work and has some Access DB's they are trying to convert because, according to a technical support person, Microsoft intends on getting rid of Access as a DB! I am posting here to ask anyone, professional or otherwise, if anyone has heard that Microsoft intends to stop supporting or implementing Access. Is Access 2003 the last version? I haven't been able to find out anything along this line. I thought, maybe Microsoft is thinking about supplanting Access with SQL Server. Before I go to the toil of building a DB system in Access, I want to know I am not wasting my time doing it. If anyone on this forum has heard a thing about Microsoft dumping Access, please let me know. Thank you. :o
Hi, I have a database which contains fields with information in many different languages. I seem to lose my japanese content from time to time. I cut and paste the information from a Word document and paste it into an Access field. It seem to work and I get the japanese text pasted. But I have lost it and now I just have all text replaced by small squares. How can I retrieve my japanese text?? What should I be looking for if I want to maintain a database in MS Access using Japanese, Chinese and other foreign language text in it? Bjorn
I want to disable a button right after click it. Because I could not disable a control that has got the focus, i tried to shift the focus to another control; however, all controls that I tried to shift the focus to don't support the method (SetFocus = true).
I want to do this on a subform's control, but I keep getting this error: Object does not support this property or method.