Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


VBA problem

Postades av 2004-10-21 15:02:29 - Fredrik Johansson, i forum access, Tråden har 6 Kommentarer och lästs av 1166 personer

Hejsan!

Jag håller på att göra en applikation i access där jag vill ha en kombinationsruta med fasta värden som hämtas ur en tabell, när man väljer ett värde där ur så ska en annan textruta fyllas med ett värde (värdet skall vara det senaste inmatade + 1 för varje individuellt val i kombinationsrutan, ska med andra ord vara en individuell räknare för varje val i komb.rutan). Både valet i komb.rutan och det senaste värdet skall sedan lagras tillsammans i en annan tabell.

Någon som förstår vad jag försöker säga och kanske har några tips?? Är riktig nybörjare på VBA!! :-/


Svara

Sv: VBA problem

Postades av 2004-10-21 15:21:06 - Sofia Svensson

Hej Fredrik!
Om jag förstått rätt vad du vill göra så kan du i onChange-eventet på kombinationsrutan dels spara undan det i kombinationsrutan valda värdet, dels sätta värdet på textboxen.

Ex:
Dim Kombo as string
Dim TextboxValue as string

Kombo = MyCombo.Value
Mytextbox.text = cint(Kombo) + 1 (Vet inte om det var så du menade, att du ville plussa på 1 på värdet av komboboxen? Hör av dig annars)
Textboxvalue = Mytextbox.text

FÖr att spara ner dessa värden i en tabell
Dim strsql as string
Om dina kolumner är av typen tal gäller nedan;
strsql = "INSERT INTO MyTable (TextBoxValue, KombinationValue) VALUES (" + Textboxvalue + ", " + Kombo + ";)

Annars, om du har kolumnerna som text;
strsql = "INSERT INTO MyTable (TextBoxValue, KombinationValue) VALUES ('" + Textboxvalue + "', '" + Kombo + "';)

Docmd.runsql strsql

Själva sqlsatsen och databasanropet vet jag inte var du vill ha om det ska sparas kanske när man klickar på en spara-knapp eller går ur formuläret eller kanske direkt efter ändring i kombobxen gjorts men det får du väl lägga på lämpligt stället.
Hoppas det var vad du menade.

Mvh, SOfia


Svara

Sv: VBA problem

Postades av 2004-10-26 12:46:59 - Fredrik Johansson

Tack för hjälpen Sofia, det va i stora drag detta jag ville ha hjälp med men jag har problem med att hämta värdet ur tabellen när man gör sitt val o komb.rutan. Måste man spara undan det värdet i ett recordset eller kan man skriva det till textrutan på en gång??

Så här ser min kod ut nu:
*********************************************
Private Sub Kombinationsruta52_Change()

Dim Kombo As String
Dim TextboxValue As String
Dim temp_value As Integer


Kombo = Kombinationsruta52.Value

temp_value = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ LIKE " & Kombo


TextboxValue = CInt(temp_value) + 1
Text54.Value = TextboxValue
***********************************************

Blir fel nr 13, skriver man sql satser på något speciellt sätt i VBA??

Hur plockar jag ut värdet ur denna till exempel??
*****
strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE " + Kombo + " EQUALS Real_Typ"

DoCmd.RunSQL (strsql)
*****

MVH // FeFFe


Svara

Sv: VBA problem

Postades av 2004-10-27 09:04:58 - Sofia Svensson

Hej!
Access har en annorlunda sqlsyntax än SQL Server.
Man kan tilldela en variabel resultatet (om det bara returnerar en enda post) så det borde gå att sätta direkt i textboxen. Dock har jag inte den syntaxen i huvudet.
Du kan annars göra om textboxen till en listbox där du i Private Sub Kombinationsruta52_Change() sätter listbox.rowsource = din sqlsats.

Ett annat förslag på lösning på din första fråga är att skapa ett recordset för att stoppa in resultatet av sql-satsen i.

Dim rs as recordset
Dim strsql as string
Dim db as database
set db = currentdb
strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ = " + cstr(Kombo) + ";"
Set rs = db.openrecordset(strsql)
rs.movefirst
textboxValue=cint(rs("Real_Nr")) + 1
rs.close

Har inte haft möjlighet att testa att ovanstående är helt korrekt men jag tror att det ska funka bra.

Fråga 2:
Hur plockar jag ut värdet ur denna till exempel??
*****
strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE " + Kombo + " EQUALS Real_Typ"

DoCmd.RunSQL (strsql)

Vet inte om du menar hur du "får tag i" värdet eller hur du får en fungerande sqlsats?
Om du menar att du vill plocka ut värdet kan ju ett recordset vara bra att använda igen.
SQLsatsen kan du skriva så här:
strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ = " + cstr(kombo)+";"

Hoppas det hjälpte!

Mvh,

Sofia


Svara

Sv: VBA problem

Postades av 2004-10-27 12:32:27 - Fredrik Johansson

YES!!

Tack för all hjälp Sofia...du är bäst! :)
Slutgiltiga koden blev så här.

Private Sub Kombinationsruta52_Change()

Dim Kombo As String
Dim TextboxValue As Integer
Dim strsql As String
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb

Kombo = Kombinationsruta52.Value

strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ = ('" + Kombo + "');"

Set rs = db.OpenRecordset(strsql)
rs.MoveFirst

TextboxValue = CInt(rs("Real_Nr")) + 1
Text54.Value = TextboxValue
rs.Close

...nu är det bara resten med att spara ner det kvar! :)


Svara

Sv: VBA problem

Postades av 2004-10-27 13:25:51 - Sofia Svensson

Hej!
Vad bra att det löste sig!
Om du vill kan du även tilldela värdet på textboxen på en gång istället för att stoppa in det i en variabel först;
Dim textboxvalue as integer
TextboxValue = CInt(rs("Real_Nr")) + 1
Text54.Value = TextboxValue

kan istället bli
Text54.Value = CInt(rs("Real_Nr")) + 1

Men det går lika bra som du har gjort, skillnaden är bara att man slipper bara någon kodrad och en variabeldeklaration!

Lycka till, du får höra av dig om du får problem att spara ned datat.

Mvh,Sofia


Svara

Sv: VBA problem

Postades av 2004-10-27 23:33:34 - Fredrik Johansson

Jo jag tänkte också på det med det spelar ju ingen större roll.
Tro det eller ej men jag lyckades fixa koden för att spara ner det själv! :)

-------------Kod för att hämta det valda värdet ur tabellen-------------

Private Sub Kombinationsruta62_Change()
Dim Kombo As String
Dim TextboxValue As String
Dim strsql As String
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb

Kombo = Kombinationsruta62.Value

strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ = ('" + Kombo + "');"

Set rs = db.OpenRecordset(strsql)

TextboxValue = CInt(rs("Real_Nr")) + 1
Real.Value = Kombo + " " + TextboxValue
rs.Close

--------------Kod för att uppdatera värdet i tabellen----------------------

Private Sub Kommandoknapp48_Click()
On Error GoTo Err_Kommandoknapp48_Click

Dim Kombo As String
Dim TextboxValue As String
Dim strsql As String
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb
Dim update_str As String

Kombo = Kombinationsruta62.Value

strsql = "SELECT Real_Nr FROM SENASTE_REAL WHERE Real_Typ = ('" + Kombo + "');"

Set rs = db.OpenRecordset(strsql)
rs.MoveFirst

TextboxValue = CInt(rs("Real_Nr")) + 1

update_str = "UPDATE SENASTE_REAL SET SENASTE_REAL.Real_Nr = ('" + TextboxValue + "') WHERE Real_Typ = ('" + Kombo + "')"

DoCmd.RunSQL (update_str)
rs.Close
------------------------------------

...det kanske va onödigt att köra samma kod en gång till för att spara ner värdet när man redan hämtat det en gång men strunt samma, det fungerar fint nu så jag är nöjd! :)

Tack för hjälpen Sofia.

//Fredrik


Svara

Nyligen

  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 878
27 965
271 772
531
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies