Бір батырманы басу арқылы алдыңғы жазбалардан белгілі бір деректерді көшіруге мүмкіндік беретін VBA функциясын қалай құруға болатындығын біліңіз. Бірдей заттарды бірнеше рет терудің қажеті жоқ.
Сізде бір өрісті қоспағанда, алдыңғы жазбамен дәл осындай мәндер жиынтығына ие болатын жаңа жазба енгізу керек болған жағдай болды ма? Бұл шаршағыш болуы мүмкін, солай ма? Бұл оқулық сізге батырманы басу арқылы алдыңғы жазбаның белгілі бір мәндерін көшіруге болатын функцияны қалай құруға болатынын үйретеді - қайта теруден уақыт үнемдейді. Төмендегі қадамдарды орындаңыз.
Енді жүктеп
Егер сіз қаласаңызtarмүмкіндікті мүмкіндігінше тезірек пайдалану үшін t:
VBA кодтары бар дерекқор үлгісін қазір жүктеп алыңыз
Әйтпесе, егер сіз өзіңіздің қолыңызбен жасағыңыз келсе, төмендегі мазмұнды оқи аласыз.
Access бағдарламасында 'жазбаның көшірмесін жасау' функциясын қосу қадамдары
- Пішінді дизайн көрінісінде ашыңыз.
- Пәрмен батырмасын қосыңыз. Пәрмен түймесінің шеберін өткізіп жіберіңіз.
- Қосу Шертіңіз түймесін басыңыз.
- Дизайн көрінісінде түймесін таңдаңыз.
- Сипат парағын ашыңыз (ALT + Enter)
- Іс-шаралар қойындысына өтіңіз> Шертілген жерде>…
- Қашан Builder таңдаңыз мәзірі шығады, Code Builder таңдаңыз.
- OK түймешігін басыңыз.
- Бұл VBA редакторын ашады.
-
- Келесі кодты көшіріңіз және оны сіздің қажеттіліктеріңізге сәйкес өзгертіңіз. Пікірлерді нұсқаулық ретінде пайдаланыңыз.
Private Sub Command24_Click() Dim currentID As Long 'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If currentID = BookID DoCmd.GoToRecord record:=acNewRec 'TO DO: set the fields to be copied (those that most likely will have the same values) 'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID) Author = DLookup("Author", "Books", "BookID=" & currentID) Country = DLookup("Country", "Books", "BookID=" & currentID) Language = DLookup("Language", "Books", "BookID=" & currentID) Genre = DLookup("Genre", "Books", "BookID=" & currentID) Publisher = DLookup("Publisher", "Books", "BookID=" & currentID) Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user End Sub - Енді ол жұмыс істейтін болса, кодты тексеріңіз.
Код түсіндірілді
Жоғарыдағы код кітап дүкенінің мәліметтер базасы үшін пайдаланылды. Кітап сериялары болғандықтан, бір өріс - Тақырыптан басқа барлық кітап мәліметтері (мысалы, Автор, Ел, Тіл және т.б.) бірдей болатын жағдайлар бар. Осылайша, кодтың қажеттілігі.
Төмендегі тізімде бағдарлама ағыны көрсетілген.
- Пайдаланушының көшіру үшін жазбаны таңдағанын тексеріңіз. Жаңа жазба қосу батырмасын басқаннан кейін пайдаланушы батырманы басқан кезде қате туралы хабарлама шығады - идентификаторды нөлге айналдырады.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Ағымдағы жазбаның идентификаторын немесе бастапқы кілтін алыңыз және оны мәні ретінде тағайындаңыз ағымдағы ID Бұл көшірілетін мәндердің негізі ретінде пайдаланылады.
currentID = BookID
- Жаңа жазбаны қосыңыз.
DoCmd.GoToRecord record:=acNewRec
- Кейбір өрістер үшін мәндерді орнатыңыз ағымдағы ID Бұл жерде таңдалған жазбадан мәліметтер көшіріледі.
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
- M өрісіне фокусты орнатыңызost алдымен қолданушы редакциялауы мүмкін. Бұл пайдаланушының тәжірибесін жақсартады, өйткені пайдаланушы әлі де жаңартылуы керек өрісті қолмен таңдау қажеттілігін жояды.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Бүлінген дерекқорды жөндеу
Егер сәтсіз себептермен бір күні сіз өзіңіздің деректер қорыңызды аша алмай оянсаңыз, сіз үшінші тарап құралдарын қолданып көре аласыз. Кіруді жөндеу. Бұл керемет жұмыс істейді.
Автордың кіріспесі:
Джейм Стек - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. SQL қалпына келтіру және excel қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз WWW.datanumen.com

